gpt4 book ai didi

.htaccess - 通过 .htaccess 替换查询字符串中的字符

转载 作者:行者123 更新时间:2023-12-02 22:33:54 26 4
gpt4 key购买 nike

我的客户希望在某些页面上修改查询字符串(通过将 % 更改为 A)。

例如,我可以通过以下方式完全删除所需页面上的查询字符串:

RewriteCond %{QUERY_STRING} !="" 
RewriteCond %{REQUEST_URI} ^/SpecialPage(.*)
RewriteRule ^(.*)$ /$1? [R=301,L] #remove query string

这是我认为应该删除查询字符串上的 % 并用 A 替换的内容,但事实并非如此:

RewriteCond %{QUERY_STRING} ^(.*)\%(.*)$
RewriteCond %{REQUEST_URI} ^/SpecialPage(.*)
RewriteRule ^(.*)$ /$1?%1A%2 [L]

我在这方面做错了什么?我只是不太能发现它。感谢专家的眼光!

最佳答案

你真的很接近。

这里的问题是你有一个条件并且你的规则的匹配应该在一起。您对之前的 RewriteCond 的反向引用已损坏,因为它是针对 REQUEST_URI不是您想要的 QUERY_STRING

RewriteCond %{REQUEST_URI} ^/SpecialPage(.*)
RewriteRule ^(.*)$ /$1?%1A%2 [L]

此处,%1 反向引用与 /SpecialPage URI 末尾的 (.*) 匹配。查询字符串匹配的反向引用会丢失,而这正是您真正想要的。您可以将条件组合起来,以将 REQUEST_URI 与 RewriteRule 中的正则表达式模式相匹配:

RewriteCond %{QUERY_STRING} ^(.*)\%(.*)$
RewriteRule ^SpecialPage(.*)$ /SpecialPage$1?%1A%2 [L]

此处,%1%2 反向引用正确引用查询字符串,并且正则表达式满足 URI 中的 SpecialPage 条件模式。

关于.htaccess - 通过 .htaccess 替换查询字符串中的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11419825/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com