.htaccess查询字符串?而不是&

时间:2015-07-16 14:27:43

标签: apache .htaccess mod-rewrite

在我的网站中,我想重写来自

的网址

http://myexampledomain.com/index.php?page=about

http://myexampledomain.com/about

所以,为了实现这一点,我确实修复了我的.htaccess代码,如

RewriteEngine On
RewriteRule ^([^/]*)$ index.php?page=$1 [L]
RewriteRule ^api/([^/]*)$ api/$1 [L]

现在,我的问题是当我需要将查询字符串发送到我的页面URL时,我需要像

那样

http://myexampledomain.com/about&myquery1=value&myquery2=value

我应该从&myquery1=value&myquery2=value而不是?myquery1=value&myquery2=value开始,因为.htaccess中已经使用了第一个?

但是现在,我需要修复此问题,我应该可以像

一样访问我的域名

http://myexampledomain.com/about?myquery1=value&myquery2=value

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您只需在规则中添加QSA标记:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ index.php?page=$1 [L,QSA]

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