.htaccess 301在htaccess中对具有参数P的URL进行重定向

zbq4xfa0  于 2022-11-16  发布在  其他
关注(0)|答案(2)|浏览(161)

我需要在htaccess中为具有参数P的URL设置301重定向。一个示例URL是http://www.price4india.co.in/vivo-x20-plus-ud-price-in-india-scanner-feature-real.html?p=1028http://www.price4india.co.in/vivo-x20-plus-ud-price-in-india-scanner-feature-real.html
在重定向之后,所有在.html之后的内容都将被删除,P=......之后的值可以是任何数值。到目前为止,我已经尝试了下面的查询,但是它不起作用。请提供任何建议...

RewriteCond %{QUERY_STRING} ^p(&|$) [NC]
RewriteRule ^ %{REQUEST_URI}? [R=301,L]
xxslljrj

xxslljrj1#

使用显示示例,请尝试使用以下.htaccess规则文件请确保仅将.html文件和.htaccess文件保存在根路径中
请确保在测试URL之前清除浏览器缓存。

RewriteEngine ON
RewriteCond %{THE_REQUEST} \s/(.*\.html)\?p=\d+\s [NC]
RewriteRule ^ /%1? [R=301,L]

***注意:***如果您的.htaccess规则中包含更多的规则,其中包括html文件的内部重写,那么您可以将这些规则保留在那些规则之上。

xfb7svmp

xfb7svmp2#

RewriteCond %{QUERY_STRING} ^p(&|$) [NC]
RewriteRule ^ %{REQUEST_URI}? [R=301,L]

这几乎是正确的,除了正则表达式^p(&|$)是不正确的。这完全匹配p&<anything>p。然而,你需要匹配p=<anything>(例如^p=)或p=<number>(例如^p=\d+)。当然,这是假设p URL参数总是出现在URL路径的开头(如你的示例)。
例如:

RewriteCond %{QUERY_STRING} ^p= [NC]
RewriteRule ^ %{REQUEST_URI}? [R=301,L]

相关问题