如何忽略URL末尾的URL



我有一个URL

original: https://www.example.com/video/12345/name-of-the-video/

有时用户或网络爬虫会以不同的方式编写URL:

https://www.example.com/video/12345/name-of-the-video/65485/
https://www.example.com/video/12345/
https://www.example.com/12345/

我希望所有3个URL重定向(转发(到原始:

https://www.example.com/video/12345/name-of-the-video/

我目前的htaccess规则是:

RewriteRule ^video/([0-9]+)/([^/]+)/$      view_video.php?id=$1&dir=$2 [L,QSA]
RewriteRule ^video/([0-9]+)/$              view_video.php?id=$1&dir=fake [L,QSA]

您能试一下以下内容吗?这些内容是根据您显示的示例编写的。请确保在测试URL之前清除浏览器缓存。

RewriteEngine ON
##To rewrite URL https://www.example.com/12345/
RewriteRule ^([0-9]+)/?$ view_video.php?id=$1&dir=fake [NC,L]
##To rewrite URL https://www.example.com/video/12345/
RewriteRule ^video/([0-9]+)/?$ view_video.php?id=$1&dir=fake [NC,L]
##To rewrite URL https://www.example.com/video/12345/name-of-the-video/65485/
RewriteRule ^video/([0-9]+)/([w-]+)/[0-9]+/?$ view_video.php?id=$1&dir=$2 [R=301,NC]
RewriteCond %{REQUEST_URI} ^/view_video.php [NC]
RewriteCond %{QUERY_STRING} id=([^&]*)&dir=(.*) [NC]
RewriteRule ^(.*) video/%1/%2 [R=301,L]
##To rewrite URL https://www.example.com/video/12345/name-of-the-video/
RewriteRule ^video/([0-9]+)/([w-]+)/?$ view_video.php?id=$1&dir=$2 [NC,L]

最新更新