我如何忽略 URL 的一部分?

我如何忽略 URL 的一部分?

我当前的重写规则如下:

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)。

相关内容