Php .htaccess导致$\u GET返回NULL

Php .htaccess导致$\u GET返回NULL,php,.htaccess,url,get,Php,.htaccess,Url,Get,我试图通过url将变量从一个页面传递到另一个页面。URL的结构如下所示http://localhost:8888/test_portfolio?location=ignite_rockford 以下是我的.htaccess文件中的相关信息: Options -MultiViews <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond

我试图通过url将变量从一个页面传递到另一个页面。URL的结构如下所示
http://localhost:8888/test_portfolio?location=ignite_rockford

以下是我的
.htaccess
文件中的相关信息:

Options -MultiViews
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ %{REQUEST_FILENAME}.php?/$1?$1=$1
</IfModule></code>
选项-多视图
重新启动发动机
重写基/
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则^(.*)$%{REQUEST_FILENAME}.php?/$1?$1=$1
问题似乎出在这一行:
RewriteRule^(.*)$%{REQUEST_FILENAME}.php?/$1?$1=$1
,但我不知道该怎么办。如果我在test\u公文包之后添加
.php
,那么它会工作,但如果我转储
$\u GET['location']
时,我会得到
NULL

哦,是的,我正在用
$location=$\u GET[“location”]检索
$\u GET


任何帮助都将不胜感激。

如果您只是试图删除
.php
,您只需添加它并用
[QSA]
标记复制查询字符串:

RewriteRule ^(.*)$ $1.php [QSA]

您的URL将来自:

/test
/test.php?/test?test=test
您确定这是您想要的吗?(除其他外,它看起来格式不正确)

通常,您会编写一个路由器,如:

RewriteRule ^(.*)$ router.php?__url=$1 [QSA]

这将为您提供一个带有原始路径的
GET
参数
\uu url
[QSA]
将允许您仍然接受所有原始查询参数,如
位置

重写cond%{REQUEST\u FILENAME}-f
负责匹配文件
-d
对目录也有同样的作用。非常感谢。我感谢你的帮助。