【问题标题】:PHP $_GET[url] not workingPHP $_GET[url] 不工作
【发布时间】:2012-05-10 18:08:33
【问题描述】:

您好,我正在尝试通过网站开发 MVC 模式,从一开始我需要获取我尝试过的 url

echo $url= $_GET['url'];
echo $url;

如果我使用这样的网址 http://localhost/autolink/index/sdsad 它想显示“index/sdsad”但它没有显示任何内容,这有什么问题?可能是版本问题?因为在另一台机器上使用它正在工作..

这是我当前的 .htaccess:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

【问题讨论】:

标签: php


【解决方案1】:

我使用 Visual Studio 2019 和 IIS 的 PHP 工具在 Visual Studio 2019 社区中开发 PHP 项目。我在测试 MVC 模式时遇到了同样的问题,但不起作用的 $_GET['url'] 开始使用 $_SERVER['REQUEST_URI']。

【讨论】:

    【解决方案2】:

    如果该 url 在另一台机器上工作,那么你有某种重写规则。你可能有类似的东西:

    RewriteEngine On
    RewriteRule ^autolink/.* autolink.php/?url=$0 [QSA,PT]
    

    这将使 index/sdsad 作为查询字符串中的 url 参数传入。

    你的例子对我有用,暗示你要么

    1. 不要打开 mod_rewrite
    2. 不要启用“允许覆盖”

    最简单的检查方法(假设这不是生产服务器)是编辑 .htaccess 文件并在第一行输入类似“POOP”的内容。如果您开始收到 500 个错误,则上述 1 和 2 不适用。

    【讨论】:

    • 我将您的评论添加到您的原始问题中。
    • 'RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l RewriteRule ^(.*)$ index.php?url=$1 [ QSA,L]'
    • 我没有收到任何 500 错误,该页面上的其他内容运行良好。只回显 $url= $_GET['url'];不显示
    • 非常感谢它现在正在工作...我什么都没做...浏览器上的问题。非常感谢 sberry
    • 现在我可以从 echo $url= $_GET['url'];但是当我使用localhost/autolink/index/sdsad 时,索引没有显示让我说如果我使用其他索引然后它的工作,localhost/autolink/notindex/sdsad .. 为什么会这样?
    猜你喜欢
    • 1970-01-01
    • 2014-12-12
    • 2013-03-01
    • 1970-01-01
    • 2012-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多