.htaccess导致$ _GET返回NULL

时间:2013-02-25 17:15:26

标签: php .htaccess url get

我试图通过我的网址将变量从一个页面传递到另一个页面。网址的结构如下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>

问题似乎在于这一行:RewriteRule ^(.*)$ %{REQUEST_FILENAME}.php?/$1?$1=$1,但我不知道该怎么做。如果我在test_portfolio之后添加.php,那么它可以正常工作,但是当我转储$_GET['location']时,我得到NULL

哦,是的,我正在使用$_GET检索$location = $_GET["location"];

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:1)

如果您只是想删除.php,只需添加[QSA]标记即可复制查询字符串:

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

答案 1 :(得分:0)

您的网址将来自:

/test/test.php?/test?test=test你确定这是你想要的吗? (看起来格格不入,等等)

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

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

这会为您提供原始路径GET参数__url[QSA]允许您仍然接受所有原始查询参数,例如location