.htaccess GET参数不存在';无法使用htaccess规则

.htaccess GET参数不存在';无法使用htaccess规则,.htaccess,.htaccess,因此,我在.htaccess中有以下代码: RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.php -f RewriteRule ^(.*)$ $1.php 每个文件都会丢失其扩展名(/index.php->/index等),这样就可以正常工作。但后来,我开始使用管理面板,并在那里使用一些GET参数。例如,有问题的URL如下所示: examp

因此,我在.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中也有这一行(但看起来没有问题):

正如所回答的,您必须在
重写规则
行的末尾添加
[QSA]

RewriteEngine on
RewriteBase /

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

谷歌搜索查询让我找到了答案:
htaccess pass parameters

我也找到了那个参数,甚至早些时候尝试过,没有改变。实际上没有,现在我得到了错误
服务器错误
服务器遇到内部错误,无法完成您的请求。服务器过载或CGI脚本出错。
RewriteEngine on
RewriteBase /

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