.htaccess重定向在保留查询字符串的同时添加哈希

时间:2014-08-28 21:25:07

标签: apache .htaccess mod-rewrite

在.htaccess中使用mod-rewrite如何在保持查询字符串前面的同时向网址添加哈希?我尝试的所有内容都将查询字符串附加到结尾,然后将其作为哈希的一部分。

这就是我想要做的事情:

http://example.com/order_now?utm_campaign=eblast082814

重定向到

http://example.com/index.php?utm_campaign=eblast082814#order_now

这是我目前的非工作.htaccess:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/\.]+)?$ /index.php?#$1 [QSA,R,NE,L]

上面错误地重定向到

http://example.com/index.php?#order_now&utm_campaign=eblast082814

1 个答案:

答案 0 :(得分:2)

似乎默认情况下在#order_now之后添加查询字符串。

这是一个解决方案(通过捕获查询字符串并手动添加)

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^([^/\.]+)?$ /index.php?%1#$1 [R,NE,L]