使用 htaccess 将多个域名指向单个网络托管帐户
我在 public_html 目录中使用了以下 .htaccess 文件
RewriteEngine on
RewriteCond %{HTTP_HOST} ^site1.org$ [OR]
RewriteCond %{HTTP_HOST} ^www.site1.org$
RewriteRule ^/?$ "/site1.org\/" [R=301,L]
目录结构
/public_html/site1.org/welcome.html
如果我输入 site1.org 重定向可以完美运行,但 URL 将是http://site1.org/site1.org/welcome.html代替http://site1.org/welcome.html
并且 URL 将是 SEO 友好的
答案1
如果没有主 Apache 配置的控制,这一点很难做到,因为基于名称的虚拟主机是正确的做法。
您或许可以这样改进重写解决方案:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^site1.org$ [OR]
RewriteCond %{HTTP_HOST} ^www.site1.org$
RewriteRule ^/(.*)$ /site1.org/$1 [QSA,PT,L]
答案2
您编写的 .htaccess 会向浏览器发送 301 重定向,然后浏览器会从其定向到的 URL 重新请求页面。.htaccess 不会根据传入域提供不同的内容。
最好使用 PHP 脚本来检测域并基于该域发送内容。
答案3
这不是使用 htaccess 将多个域指向单个网络托管帐户。您在这里执行的是 URL 重定向。请正确表述您的问题。
答案4
我的也有这样的......
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress