如何在php中获取url?

Posted

技术标签:

【中文标题】如何在php中获取url?【英文标题】:How to get url in php? 【发布时间】:2019-04-18 10:23:00 【问题描述】:

我想在 php.ini 中获取 url。在我的根目录“myproject”->book 文件夹/index.php 文件中

请检查我在做什么:

我正在访问地址栏上的网址http://localhost:8080/myproject/book/index.php?id=myurl

PHP 代码:

<?php

$url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
echo $url;

Works Perfectly
Output: http://localhost:8080/myproject/book/index.php?id=myurl

?>

如果我想访问http://localhost:8080/myproject/book/

输出将是: http://localhost:8080/myproject/book/

到目前为止一切正常。但我想得到如下的 url,在我的 index.php 文件中删除实际的 url 将是 http://localhost:8080/myproject/book/index.php?id=myurl 但当用户点击下面的 url 时我想要

http://localhost:8080/myproject/book/myurl

它可以访问网址http://localhost:8080/myproject/book/index.php?id=myurl,但在地址栏上仍然显示网址http://localhost:8080/myproject/book/myurl

欢迎任何想法或建议。

【问题讨论】:

【参考方案1】:

您应该在网站根目录下的 Apache 网络服务器配置文件 .htaccess 中使用 mod_rewrite 指令,或者使用 nginx 模拟。

【讨论】:

【参考方案2】:

这取决于您的网络服务器,以下是主要 3 的解决方案:

阿帕奇mod_rewrite

nginxRewrite rules

微软 IIS Rewrite rules

我认为最难完成的是 IIS 上的那些,但它们都需要一些习惯......享受

大多数 Web 框架都内置了重写规则或使用参数而不是查询参数进行路由。因此,根据您使用的语言和框架,您可能不必自己进行翻译(这可能会很痛苦)

【讨论】:

@ Edwin Krause 感谢您的回复。我正在使用 apache。 欢迎您,您使用的是什么框架? PHP 显然是语言:-) 我没有使用任何框架。语言 php。我必须使用 laravel,但这是给我的未完成项目。 Laravel 非常适合路由和其他一切:最好的 PHP 框架!请您接受我的回答正确吗?

以上是关于如何在php中获取url?的主要内容,如果未能解决你的问题,请参考以下文章

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

如何在 php 中获取当前浏览器 URL? [复制]

如何在 php 中创建干净的 url 从 mysql 获取数据?

如何在数组列表php中获取对象

如何在 PHP 中获取完整的 URL,而不仅仅是其中的一部分? [复制]

如何从 php 或 node.js 获取 websocket url 路径