我有一个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]