Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess 使用htaccess将查询字符串附加到URL_.htaccess_Mod Rewrite_Redirect_Url Rewriting_Pretty Urls - Fatal编程技术网

.htaccess 使用htaccess将查询字符串附加到URL

.htaccess 使用htaccess将查询字符串附加到URL,.htaccess,mod-rewrite,redirect,url-rewriting,pretty-urls,.htaccess,Mod Rewrite,Redirect,Url Rewriting,Pretty Urls,我需要将查询字符串附加到某些URL,以便进行活动跟踪/表单提交。例如,我需要重定向到 我尝试设置它的方式是,当我尝试访问domain.com/page时,给我一条重定向循环错误消息: RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] Redirect 301 /page http://domain.com/page/?Campaign_ID=1234656 我还尝试了使用RewriteRule,这也给了我一个循环消息:

我需要将查询字符串附加到某些URL,以便进行活动跟踪/表单提交。例如,我需要重定向到

我尝试设置它的方式是,当我尝试访问domain.com/page时,给我一条重定向循环错误消息:

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
Redirect 301 /page http://domain.com/page/?Campaign_ID=1234656
我还尝试了使用RewriteRule,这也给了我一个循环消息:

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule ^page$ http://domain.com/page/?Campaign_ID=1234656 [L,NE,R=301]
如果这个问题已经在这里得到了回答,我很抱歉。我搜索了一段时间,没有找到它,所以请不要因为我发帖而对我大喊大叫。我确实试着自己找。谢谢

试试看:

RewriteCond %{REQUEST_URI} ^(/page/)(.*)$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1?Campaign_ID=1234656 [L,R=301]
尝试:


这适用于我首先列出的任何页面的重写规则,但对于之后的任何页面,我都会得到重定向循环消息。我可以在每个RewriteRule之前继续执行RewriteCond,但最好能够在条件之后列出多个规则。我尝试从规则中删除L标志,但随后查询字符串完全消失。这是可行的,但如果你有一个想法,让它只使用一个条件实例,然后使用多个规则,我洗耳恭听。非常感谢@user2930880“我可以在每个重写规则之前继续执行重写,但最好能够在条件之后列出多个规则。”这根本不是mod_rewrite的工作方式。对于每一组条件,它们只适用于紧跟其后的规则。如果希望它应用于每个页面,请将页面更改为“所有内容”:
^([^/]+)/?$http://domain.com/$1/?Campaign_ID=1234656[L,NE,R=301]
ok,那么如果我需要将不同的查询字符串附加到不同页面的URL,我唯一的选择就是为每个页面执行一个条件和一个规则?@user2930880 Yes,除非您有权访问服务器的配置文件并创建
重写映射
,否则您可以使用htaccess文件中的映射将^([^/]+)/?$部分映射到查询字符串。
RewriteEngine On
RewriteBase /

RewriteRule ^index\.php$ - [L]

RewriteCond %{QUERY_STRING} ^$
RewriteRule ^page/?$ http://domain.com/page/?Campaign_ID=1234656 [L,NE,R=301]