我想要以一种方式重定向链接,使得末端没有斜杠的url应该被重定向到末尾带斜杠的url。
示例1:
http://example.com/quiz/funny-riddles-with-answers
应该重定向到
http://example.com/quiz/funny-riddles-with-answers/
示例2
http://example.com/quiz/math-riddles-with-answers
应重定向到
我不知道该怎么做。
我当前的.htacess截图是
RewriteEngine On
RewriteBase /quiz/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)?$ mypage.php?param1=$1¶m2=$2 [L,QSA]
答案 0 :(得分:1)
在/quiz/.htaccess
中尝试这些规则:
RewriteEngine On
RewriteBase /quiz/
# add a trailing slash for non-directories
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{THE_REQUEST} \s(.+?[^/])[?\s]
RewriteRule ^ %1/ [R=301,L,NE]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)/?$ mypage.php?param1=$1¶m2=$2 [L,QSA]
答案 1 :(得分:0)
您可以使用以下方法轻松地重写为尾部斜杠:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*[^/])$ /$1/ [L,R=301]
放在您现有的重写之上。
答案 2 :(得分:0)
您需要将当前规则的模式更改为:^([^/]+)/([^/]+)?/?$
然后在RewriteBase /quiz/
:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)$ /$1/$2/ [L,R=301]