我当前的重写规则如下:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond ${REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_URI} ^/video/(.*)$
RewriteRule ^(.*)$ /video/index.php [L]
URL 类似,example.com/video/?p=2231&c=395840&s=849264&l=101641
工作正常。
出于 SEO 原因,我需要允许video/
和之间的任何字符串?p=2231&c=395840&s=849264&l=101641
。例如,URLexample.com/video/string/string/?p=2231&c=395840&s=849264&l=101641
不应映射/string/string/
到 index.php。
我尝试了以下规则,但是没有效果:
RewriteRule ^video/(.+)/(.+)/(.+)$ /video/$3 [L]
我该如何解决这个问题?
答案1
如果你只需要查询字符串参数,你可以尝试这个RewriteRule:
RewriteRule ^video(.*) /video/index.php [QSA,L]
QSA Flag 将“转发”参数到下一个脚本(即 index.php)。