【发布时间】:2012-05-01 16:00:51
【问题描述】:
我希望将我的域 example.com 和 www.example.com 重定向到 http://example2.com,但我希望保留对我在 http://example.com/sdfhs 的帖子的所有访问,以继续到达他们的目的地。
基本上,我只想重定向根域和 www 域,其余部分保持不变。
如何使用 .htaccess 做到这一点?
【问题讨论】:
我希望将我的域 example.com 和 www.example.com 重定向到 http://example2.com,但我希望保留对我在 http://example.com/sdfhs 的帖子的所有访问,以继续到达他们的目的地。
基本上,我只想重定向根域和 www 域,其余部分保持不变。
如何使用 .htaccess 做到这一点?
【问题讨论】:
不知道您是否还有这个问题,但我已经在我的一个域(Yourls 安装)上遇到了这个问题。试试:
RewriteEngine On
RewriteRule ^$ http://www.example.com/ [R=301,L]
它适用于我的安装,但请在您的网站上查看。
【讨论】:
为什么不
RewriteEngine On
RewriteCond ${HTTP_HOST} example\.com|www\.example\.com
RewriteRule ^/?$ http://example2.com [L]
【讨论】:
通过httpd.conf启用mod_rewrite和.htaccess,然后把这段代码放到你.htaccess的DOCUMENT_ROOT目录下:
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteCond ${HTTP_HOST} ^(www\.)?example\.com$ [NC]
RewriteRule ^$ http://example2.com [L,R=301]
【讨论】:
您可以简单地匹配具有至少 1 个字符 (.+) 的任何 URL,并将其标记为重写引擎查看 [L] 的最后一条规则。
然后将其他任何东西 (.*) 重定向到新域(唯一不匹配的东西就是根)。
RewriteEngine On
RewriteRule ^(.+)$ - [L]
RewriteRule ^(.*)$ http://example2.com/$1 [R=301,L]
【讨论】: