仅针对域的 Htaccess 301 重定向
Posted
技术标签:
【中文标题】仅针对域的 Htaccess 301 重定向【英文标题】:Htaccess 301 redirect for domain only 【发布时间】:2012-05-24 00:44:33 【问题描述】:我在 htaccess 中有一个这样的 301 重定向列表:
Redirect 301 /oldpage1.php http://www.domain.com/newpage1.php
Redirect 301 /oldpage2.php http://www.domain.com/newpage2.php
Redirect 301 /oldpage3.php http://www.domain.com/newpage3.php
...
现在这些页面应该只重定向到某个域(现在还有其他域指向相同的位置,例如 www.domain.com)。
例如www.domain.com/oldpage1.php 应被重定向,但 www.sub.domain.com/oldpage1.php 不会。
那么仅对 www.domain.com 应用这些重定向的方法是什么?
谢谢。
【问题讨论】:
为此使用 mod_rewrite 的RewriteRule
和 RewriteCond %HTTP_HOST ^www\.domain\.com$
。
【参考方案1】:
通过httpd.conf
启用mod_rewrite和.htaccess,然后把这段代码放到你.htaccess
的DOCUMENT_ROOT
目录下:
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteCond %HTTP_HOST ^(www\.)?domain\.com$
RewriteRule ^oldpage1\.php/?$ newpage1.php [L,R=301]
RewriteCond %HTTP_HOST ^(www\.)?domain\.com$
RewriteRule ^oldpage2\.php/?$ newpage2.php [L,R=301]
RewriteCond %HTTP_HOST ^(www\.)?domain\.com$
RewriteRule ^oldpage3\.php/?$ newpage3.php [L,R=301]
PS:如果你有几个类似上面的规则,那么最好使用RewriteMap。
【讨论】:
以上是关于仅针对域的 Htaccess 301 重定向的主要内容,如果未能解决你的问题,请参考以下文章