【发布时间】:2018-06-28 10:46:52
【问题描述】:
我有一个类似 https://my.com/list.php?login=test&amp%3Bpassword=test&amp%3Btype=m3u 的链接,并试图通过 .htaccess 我的规则将所有 &amp%3B 替换为 &
RewriteCond %{QUERY_STRING} ^(.*)&%3B(.*)$
RewriteRule ^(.*)$ /$1?%1&%2 [L,R=301]
不工作。 如何使用 .htaccess 文件将 url 中的所有 amp%3B 更改为 &?
【问题讨论】:
-
你能在我们可以看到链接的地方添加相关的 HTML 行吗?
-
请给我一些背景信息。为什么你有这种形式的链接?我只是问,因为最好在早期阶段以编程方式更改它
-
以编程方式无法更改引用,因为请求是由其他网站发出的。有必要通过 .htaccess 更改使用我的规则,参考更改:/list.php?login=test&%253Bpassword=test&type=m3u
-
我不确定 %{QUERY_STRING} 变量是否仍然包含
%3B- 此时可能已经进行了 URL 解码。所以尝试在那个地方匹配;。 -
或者,如果你不能通过重写来实现它,一个替代方法可能是在你的 PHP 脚本中简单地处理它。如果我的测试工作正常,而不是
password和test,这似乎会导致 $_GET 中的两个条目与键amp;password和amp;test- 所以你可以很容易地检查这些是否设置,如果是这样使用正确的键“创建”相应的 $_GET 条目(然后可能会在之后取消设置错误的键,如果这些可能会在以后的应用程序/脚本中引起问题。)
标签: php .htaccess mod-rewrite