我尝试重定向网址,如:
example.com/video/1640/video-name
到
example.com/video/1640/video-name /
我试过了:
RewriteRule ^video/([^/]*)/([^/]*)/$ video.php?id=$1&title=$2 [L]
RewriteRule ^video/([^/]*)/([^/]*)$ /video/([^/]*)/([^/]*)/ [R=301,L]
但它不起作用
我目前的htaccess文件只有第一行:
RewriteRule ^video/([^/]*)/([^/]*)/$ video.php?id=$1&title=$2 [L]
和视频仅在
加载example.com/video/1640/video-name /
网址类型
我想重定向非反斜杠网址类型
example.com/video/1640/video-name
到正确的那个(带反斜杠的那个)
我该怎么做?
答案 0 :(得分:2)
您的第二条规则应为RewriteRule ^video/([^/]*)/([^/]*)$ /video/$1/$2/ [R=301,L]
或者您可以完全放弃重定向,只需说出RewriteRule ^video/([^/]*)/([^/]*)/?$ video.php?id=$1&title=$2 [L]
即可让您查看视频。
答案 1 :(得分:0)
更新 FallingBullets是对的(请参阅此答案的评论),他的回答更好地解决了OP的问题,所以请忽略这个答案(我将其留待参考)。
也许您只需要在模式前添加/?
? E. g。
RewriteRule ^/?video/([^/]*)/([^/]*)/$ video.php?id=$1&title=$2 [L]
RewriteRule ^/?video/([^/]*)/([^/]*)$ /video/([^/]*)/([^/]*)/ [R=301,L]
# ^ these ones
而不是
RewriteRule ^video/([^/]*)/([^/]*)/$ video.php?id=$1&title=$2 [L]
RewriteRule ^video/([^/]*)/([^/]*)$ /video/([^/]*)/([^/]*)/ [R=301,L]
因为您将模式锚定在路径的开头(使用^
)。