将多个域指向单个网络托管帐户

将多个域指向单个网络托管帐户

使用 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

相关内容