使用 htaccess 重写后,如何在 PHP 中获取可见 URL(不是实际 URL)? [复制]

Posted

技术标签:

【中文标题】使用 htaccess 重写后,如何在 PHP 中获取可见 URL(不是实际 URL)? [复制]【英文标题】:how do I get the visible URL (not that actual URL) in PHP after using htaccess rewrites? [duplicate] 【发布时间】:2014-09-03 06:29:19 【问题描述】:

我正在尝试使用 php 获取地址栏中的 URL,但 $_SERVER['REQUEST_URI'] 将该路径返回到实际文件,而不是我使用 .htaccess 创建的 URL。例如,如果我的文件位于

example.com/files/example.php

但我已将网址更改为:

example.com/example

我想使用 PHP 获取更漂亮的 URL,而不是实际路径。 $_SERVER['REQUEST_URI'] 正在返回实际路径。

【问题讨论】:

@this.lau_ 不是重复的。该答案将在重定向后获得网址 当然,如果您知道如何在 htaccess 文件中重写 url,您可以轻松地在 $_SERVER['REQUEST_URI'] 上的 php 中使用相同的逻辑来生成重写的 url? ***.com/questions/6588661/…答案可能对你有所帮助。 @Basic,你是对的,我猜应该是 user1 提到的问题/答案的副本。 【参考方案1】:
$prettyUrl= str_replace(array('files/', '.php'), ' ', $_SERVER['PHP_SELF']);

明显不同的逻辑取决于哪个页面及其对应的 htaccess 重写。

当然,当您指的是 $_SERVER['PHP_SELF'] 时,有人会认为您在谈论重定向?如果是这样,该 url 应该已经重写,因为它是从浏览器发送的。

【讨论】:

【参考方案2】:

如果您的服务器将浏览器重定向到新 URL,您可以从 $_SERVER['HTTP_REFERER'] 获取旧 URL。

【讨论】:

以上是关于使用 htaccess 重写后,如何在 PHP 中获取可见 URL(不是实际 URL)? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

PHP 内置服务器和 .htaccess mod 重写

使用 PHP 和 .htaccess 重写 URL

.htaccess使用无限参数重写规则

如何在php中重写Get变量的url [重复]

使用php htaccess重写URL?

Apache在子目录中重写htaccess