重定向URL没有扩展名,最后是斜杠

时间:2011-12-05 19:50:20

标签: .htaccess redirect

我想将没有扩展程序的所有网址(www.mydomain.com/test)重定向到我的主页,不包括以斜杠结尾的网址(www.mydomain.com/test/)。

以下代码效果很好......

RewriteEngine on
RewriteBase /
RewriteRule ^([^.]+)$ http://www.mydomain.com [NC,R=301,L]

...但它也会重定向以斜杠结尾的网址。

如何才能实现末尾斜杠的网址不被重定向?

由于

2 个答案:

答案 0 :(得分:1)

我相信这会做你所要求的,你只需要将你的匹配限制在不以尾部斜杠结尾的页面上:

RewriteRule    ^(.+[^/])$           http://www.mydomain.com  [R]

然而,从逻辑的角度来看,这听起来像是一个真正糟糕的主意。但我想这不是我告诉你的地方,所以我认为你有充分的理由这样做。祝你好运!

答案 1 :(得分:0)

尝试将以下内容添加到.htaccess

RewriteEngine On
RewriteBase /

#If it does not end in an extension (of 2 to 4 chars)
RewriteCond %{REQUEST_URI} !\.[a-z]{2,4}$ [NC]
#and it does not end in a slash
RewriteCond %{REQUEST_URI} ![^/]$
#redirect to home page
RewriteRule . http://www.mydomain.com  [L,R=301]