如何在php中从浏览器获取url?

如何在php中从浏览器获取url?,php,Php,我想在php中获取url 我想访问“demoproject”下“book folder”中的“index.php”文件,如下所示: demoproject/book/index.php 我想要的是: 当有人在浏览器中键入时,我想访问index.php文件 demoproject/book/page2 在index.php文件中,我编写了动态访问page2的代码。 如果用户键入page3,则page3内容将加载到index.php文件中 以下是我正在做的: // Assume user typ

我想在php中获取url

我想访问“demoproject”“book folder”中的“index.php”文件,如下所示:

demoproject/book/index.php
我想要的是:

当有人在浏览器中键入时,我想访问index.php文件

demoproject/book/page2
在index.php文件中,我编写了动态访问page2的代码。 如果用户键入page3,则page3内容将加载到index.php文件中

以下是我正在做的:

// Assume user type in the browser
// demoproject/book/page2

$url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$errors = array();
//get request url
$request_uri = explode('/', $_SERVER['REQUEST_URI']);
//print_r($request_uri);
echo $request_uri[3];   // page2

?>
但我的问题是,我可以使用index.php访问下面的url

demoproject/book/index.php
但当用户在浏览器上键入以下内容时,无法获取第2页:

demoproject/book/page2
仅当用户类型为:

demoproject/book/page2     // I want to get page2 on index.php
demoproject/book/page3     // I want to get page3 on index.php
demoproject/book/page4     // I want to get page4 on index.php
demoproject/book/page5     // I want to get page5 on index.php
demoproject/book/page6     // I want to get page6 on index.php
欢迎提出任何意见或建议。
谢谢

我建议您维护以下文件结构:

demoproject/bookName/page1.php
demoproject/bookName/page2.php
demoproject/bookName/page3.php etc
但是,我知道您希望在访问页面时从文件名中删除dot.php扩展名,您可以使用.htaccess文件将任何请求重定向到相应的页面。例如:

如果您的用户转到-

url : demoproject/bookName/page2
它们将自动重定向到-

url : demoproject/bookName/page2.php
而url将不显示dot.php扩展名

使用以下.htaccess代码

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [QSA,L]

如果您需要进一步帮助,请告诉我。

您的Web服务器需要知道如何处理这些请求。(例如,研究Apache的ModRewrite)您最初用cakephp标记了这个问题。如果这就是您正在使用的内容,那么文档中应该有关于如何正确配置web服务器的说明(cakephp附带了一个路由器)。如果OP使用nginx作为web服务器呢?那么让她澄清一下,而不是假设。我给出的回答是基于大多数初学者使用的内容和他们的环境设置。