0

每次在浏览器中输入 url 时,我从来没有从 $_GET['url'] 获取 url,这正常吗?即使我尝试在某个类中捕获它,我也无法从 $_GET['url'] 获取 url,但为简单起见,我将它放在这里只是在这个简单的示例中。

在此处输入图像描述

<?php 
   $url = getUrl();

   function getUrl(){
    if(isset($_GET['url'])){
      $url = rtrim($_GET['url'], '/');
      $url = filter_var($url, FILTER_SANITIZE_URL);
      $url = explode('/', $url);
      return $url;
    }
  }
?>
4

3 回答 3

5

$_GET包含解析的查询参数,而不是实际的 URL 本身。

您可以使用$_SERVER['HTTP_HOST']来获取服务器的主机名(即。host.example.com,以及$_SERVER['REQUEST_URI']获取路径(即/my/page/hello.php?a=b)。

于 2019-09-02T21:39:23.857 回答
0

帮助我的是 .htaccess 文件设置。通过这种方式(见图)我可以捕获 url 部分。所以正确的 .htaccess 设置是我认为的最佳答案。现在它的行为符合我的预期。

在此处输入图像描述 .htaccess 文件:

<IfModule mod_rewrite.c>
  Options -Multiviews
  RewriteEngine On
  RewriteBase /test
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule  ^(.+)$ index.php?url=$1 [QSA,L]  
</IfModule>
于 2019-09-03T16:26:12.347 回答
0

$_GET用于获取 URL 参数,而不是 URL 本身,使用 atymic Answer 来获取您需要的内容

于 2019-09-02T21:42:34.427 回答