【问题标题】:.htaccess causing $_GET to return NULL.htaccess 导致 $_GET 返回 NULL
【发布时间】:2013-02-25 17:15:25
【问题描述】:

我试图通过我的 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>

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

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

任何帮助将不胜感激。

【问题讨论】:

    标签: php .htaccess url get


    【解决方案1】:

    如果你只是想删除.php,你可以添加它并复制带有[QSA]标签的查询字符串:

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

    【讨论】:

    • RewriteCond %{REQUEST_FILENAME} !-f 负责匹配文件。 -d 对目录也是如此。
    • 非常感谢。感谢您的帮助。
    【解决方案2】:

    您的网址将来自:

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

    通常你会写一个这样的路由器:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-04
      • 2018-12-21
      • 1970-01-01
      • 2012-10-16
      相关资源
      最近更新 更多