如何编写一个htaccess规则,为网址添加一个尾随的斜杠?

时间:2012-10-03 05:15:02

标签: .htaccess

例如,对于www.example.com/foo/dosomething/,我有一个htaccess文件:

RewriteEngine On

RewriteRule ^dosomething/$ myfile.php [L]

这个htaccess文件位于我的foo目录中,实际存在。但后来我才意识到,输入url的用户可能会忘记前面的斜杠,所以他们可能输入:www.example.com/foo/dosomething,然后他/她会得到404.我不希望这样,所以我改为写了这个:

RewriteRule ^dosomething/$ myfile.php [L]

但后来我记得这不是SEO友好,因为两个'网页'具有完全相同的内容。所以我现在想要的是,如果url在末尾没有尾随斜杠,那么htaccess会重定向,例如:www.example.com/foo/dosomethingwww.example.com/foo/dosomething/

1 个答案:

答案 0 :(得分:1)

尝试:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+[^/])$ /foo/$1/ [L,R=301]

myfile.php规则之前。 301重定向将确保搜索引擎索引将等同于2个URL。