.htaccess GET参数不存在';无法使用htaccess规则
因此,我在.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
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]