2014-08-28 66 views
2

在.htaccess中使用mod-rewrite如何在保留查询字符串的同时将哈希添加到url?我所尝试的所有东西都将查询字符串追加到末尾,然后将其作为散列的一部分。.htaccess在保留查询字符串的同时重定向添加哈希

这就是我想要做的事:

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 

回答

2

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

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

RewriteEngine On 

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

我只需要删除[QSA]从您的代码(否则它再次追加查询字符串结尾)和它的工作完美。谢谢! – littleRoom 2014-08-28 21:41:14

+0

对不起,我忘了从我的答案中删除'QSA'。不客气,很高兴它的工作。如果有帮助,不要忘记验证我的答案 – 2014-08-28 21:51:30

相关问题