.htaccess 301重定向问题

时间:2011-05-22 08:39:46

标签: .htaccess redirect http-status-code-301

我尝试重定向网址,如:

  

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

到正确的那个(带反斜杠的那个)

我该怎么做?

2 个答案:

答案 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]

因为您将模式锚定在路径的开头(使用^)。