重写替换单个字符的规则。一旦

时间:2013-08-07 15:13:58

标签: apache .htaccess mod-rewrite replace

我需要一些.htaccess文件和mod_rewrite的帮助。

现在我的SMS支付提供程序有一个脚本,它根据您解析的变量执行不同的任务。 问题是,该脚本被称为:

http://examp.le/path/script.php&param1=x&param2=whatever&param3=823

等等。 你肯定知道,这是错误的。第一个字符应该是查询标记,而不是&符号。因此,我需要编写一个重写规则,用查询标记替换&符号的 first occurence 。我从来都不擅长正则表达式,或者一般都是htaccess。

但是。如果您正在回答,请说明角色做什么以及世界如何运作。提前谢谢。

1 个答案:

答案 0 :(得分:0)

通过httpd.conf启用mod_rewrite和.htaccess,然后将此代码放在.htaccess目录下的DOCUMENT_ROOT中:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On

RewriteCond %{THE_REQUEST} \s/(script\.php)&(param1=[^\s]+) [NC]
RewriteRule ^ /%1?%2 [R=302,L]

验证一切正常后,将R=302替换为R=301。在测试mod_rewrite规则时,请避免使用R=301(永久重定向)。