从一个特定目录中删除尾部斜杠

时间:2020-05-26 13:51:11

标签: apache .htaccess

我正在尝试从一个特定(/ blog)目录中的所有url中删除尾随斜杠。

例如:

http://www.example.com/blog/cowboy/应该被301化为http://www.example.com/blog/cowboy http://www.example.com/tips/cowboy/应该保持不变,而不是301ed

我当前使用以下RewriteRule

RewriteRule ^blog/?$ index.php?m=pages&p=group&id=blogs_page [L]
RewriteRule ^blog/([0-9]+)/?$ index.php?m=pages&p=group&id=blogs_page&page=$1 [L]
RewriteRule ^blog/([0-9A-Za-z_\-]+)/?$ index.php?m=pages&p=$1 [L]

可以重新修改它以删除尾部斜杠吗?

1 个答案:

答案 0 :(得分:2)

您可以在现有规则之前拥有301规则:

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

RewriteRule ^blog/?$ index.php?m=pages&p=group&id=blogs_page [L,QSA,NC]

RewriteRule ^blog/(\d+)/?$ index.php?m=pages&p=group&id=blogs_page&page=$1 [L,QSA,NC]

RewriteRule ^blog/([\w-]+)/?$ index.php?m=pages&p=$1 [L,QSA,NC]