如果网址包含关键字,请在结尾加上斜杠

时间:2018-08-23 09:12:48

标签: .htaccess mod-rewrite

我已经尝试了多个版本的尾部斜杠代码,但是没有一个对我有用。我希望仅当url包含关键字新闻时才添加斜杠,所以

domain.com/news
domain.com/news/category/foo
domain.com/news/archive/august-2018

应触发它以添加斜杠。我现在有这个

RewriteCond %{REQUEST_URI} ^/(news.*)$
RewriteRule ^/news(.*[^/])$ %{REQUEST_URI}/ [R=301,L]

2 个答案:

答案 0 :(得分:0)

您可以使用两个单独的规则执行此操作,一个规则仅适用于news,另一条仅适用于news/categroy/foo

# direct news to news/
RewriteRule ^news$ news/ [L,R=301]

# if no trailing slash, direct news/* to news/*/
RewriteCond %{REQUEST_URI} ^(.*[^/])$
RewriteRule ^news/(.*)$ news/$1/ [L,R=301]

这三个规则导致:

http://www.example.com/news => http://www.example.com/news/
http://www.example.com/news/category/foo => http://www.example.com/news/category/foo/
http://www.example.com/news/archive/august-2018 => http://www.example.com/news/archive/august-2018/

您可以使用htaccess.madewithlove.be测试这些规则。

答案 1 :(得分:0)

尝试使用以下规则,

RewriteRule ^news$ http://%{HTTP_HOST}%{REQUEST_URI}/ [R=301]