2014-04-01 35 views
1

我有一个重定向除了在3个特定的文件夹到PHP文件的URL它处理显示页面的任何URL一个htaccess:维护查询字符串的htaccess重写

Options +FollowSymLinks 
RewriteEngine On 
RewriteCond %{REQUEST_URI} !^/app [NC] 
RewriteCond %{REQUEST_URI} !^/templates [NC] 
RewriteCond %{REQUEST_URI} !^/downloads [NC] 
RewriteCond %{THE_REQUEST} \ /+([^\ \?]*) 
RewriteRule (.*)$ ./app/index.php?url=%1 [L,B] 

的问题是,然而,任何查询信息在URL中丢失。我想知道是否有可能保留这一点。

例如:

mysite.com/test?page=1 would become /app/index.php?page=1&url=test 

,而不是(也就是现在发生了什么):

mysite.com/test?page=1 becomes /app/index.php?url=test 

回答

1

你只需要一个QSA标志的位置:

Options +FollowSymLinks 
RewriteEngine On 
RewriteCond %{REQUEST_URI} !^/app [NC] 
RewriteCond %{REQUEST_URI} !^/templates [NC] 
RewriteCond %{REQUEST_URI} !^/downloads [NC] 
RewriteCond %{THE_REQUEST} \ /+([^\ \?]*) 
RewriteRule (.*)$ ./app/index.php?url=%1 [L,B,QSA] 

QSA(查询字符串追加)标志保留现有的查询参数,同时添加新的参数。

+0

我知道这会是一件简单的事情!非常感谢!!! :) – rcooper102

+0

不客气,很高兴它解决了。 – anubhava

+0

请考虑接受它,如果它为你工作。 – anubhava