GET参数不适用于htaccess规则

时间:2017-06-10 13:31:11

标签: .htaccess

所以,我在.htaccess中有这段代码:

RewriteEngine on
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

每个文件都丢失了它的扩展名(/index.php - > / index等),并且完全正常。但是后来,我开始使用管理面板,我在那里使用了一些GET参数。例如,有问题的URL看起来像:

example.com/admin?cat=1

据我所知,RewriteRule只在RewriteBase之后获取字符串并且没有捕获GET参数,对吧?那么,为什么当我尝试访问此URL时,会将其重写为此?

http://example.com/C:/OpenServer/domains/example.com/admin/1/

.htaccess中也有这一行(但看起来没有问题):

RewriteRule ^admin/(.*)$ admin.php?cat=$1

1 个答案:

答案 0 :(得分:0)

在回答here时,您必须在[QSA]行的末尾添加RewriteRule

RewriteEngine on
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [QSA]

谷歌搜索查询引导我得到答案:htaccess pass parameters