Php 使用.htaccess重写查询字符串中的变量
我在我的网站上使用一个PHP脚本,在URL中生成一个查询字符串。查询字符串中的一个变量是:Php 使用.htaccess重写查询字符串中的变量,php,.htaccess,Php,.htaccess,我在我的网站上使用一个PHP脚本,在URL中生成一个查询字符串。查询字符串中的一个变量是:color=red 我想在.htaccess文件中制定一条规则,将color=red的所有实例重新写入color=blue 我没有权限更改原始PHP脚本,因此需要.htaccess规则 RewriteEngine On RewriteCond %{QUERY_STRING} ^(.*&|)colour=red(&.*|)$ # search colour=red RewriteRule ^
color=red
我想在.htaccess文件中制定一条规则,将color=red
的所有实例重新写入color=blue
我没有权限更改原始PHP脚本,因此需要.htaccess规则
RewriteEngine On
RewriteCond %{QUERY_STRING} ^(.*&|)colour=red(&.*|)$ # search colour=red
RewriteRule ^(.*)$ $1?%1colour=blue%2 [L,R=301] # redirect to colour=blue
这将把查询字符串中带有colour=red
的URL重定向到带有colour=blue
这将把查询字符串中带有
color=red
的URL重定向到带有color=blue
的URL。您好,谢谢您的回复。它不起作用,当我将您的代码添加到.htaccess时,出现了“内部服务器错误”。请问mod\u rewrite
可用/启用了吗?在我的例子中,它按预期工作。嗨,是的,我的服务器上启用了mod_rewrite。我经常使用它重定向某些页面,也可以重新编写。将代码添加到.htaccess时遇到“内部服务器错误”。以防万一,我注释掉了.htaccess文件中的所有其他规则,但恐怕没有什么乐趣。上面的代码只解决了我问题的一半。有人知道如何重新定向URL,使查询字符串实际上包含color=blue
,而不仅仅是$\u GET
对其进行编辑吗?我编辑了我的答案。现在它将实际用color=blue
替换color=red
,并重定向到它。您好,谢谢您的回复。它不起作用,当我将您的代码添加到.htaccess时,出现了“内部服务器错误”。请问mod\u rewrite
可用/启用了吗?在我的例子中,它按预期工作。嗨,是的,我的服务器上启用了mod_rewrite。我经常使用它重定向某些页面,也可以重新编写。将代码添加到.htaccess时遇到“内部服务器错误”。以防万一,我注释掉了.htaccess文件中的所有其他规则,但恐怕没有什么乐趣。上面的代码只解决了我问题的一半。有人知道如何重新定向URL,使查询字符串实际上包含color=blue
,而不仅仅是$\u GET
对其进行编辑吗?我编辑了我的答案。现在它将实际用color=blue
替换color=red
,并重定向到它。