301重定向

时间:2008-12-10 07:13:25

标签: mod-rewrite redirect http-status-code-301

  1. 如何将网址重定向到域。 例如。 http://www.mydomain.com/index.php=HairThing - > http://www.mydomain.com

  2. 如何将非www重定向到www而不用斜杠?

  3. 例如http://mydomain.com ---> http://www.mydomain.com

3 个答案:

答案 0 :(得分:4)

另请参阅:Hidden features of mod_rewrite

#1
RewriteRule /index.php=HairThing$ http://www.mydomain.com [R=301]

#2
RewriteCond %{HTTP_HOST} ^mydomain.com 
RewriteRule .*   http://www.mydomain.com [R=301] 

然而,如Greg所说,示例案例1将始终将/置于没有uri的情况下。

mydomain.com  # impossible 
mydomain.com/ # possible
mydomain.com/foo  #possible
mydomain.com/foo/ #possible

答案 1 :(得分:2)

对于第二个问题,浏览器将始终在网站名称后面添加斜杠。这是因为需要使用尾部斜杠来指示网站的根路径。

答案 2 :(得分:0)

您可以使用适用于每个域的一般规则,而无需始终更改域名。当您将多个域停放在同一个根目录时,这非常有用。

RewriteCond %{HTTP_HOST}    !^www\.[a-z0-9-]+\.[a-z]{2,6}   [NC]
RewriteCond %{HTTP_HOST}    ([a-z0-9-]+\.[a-z]{2,6})$       [NC]
RewriteRule (.*)            http://www.%1/$1                [L,R=301]