如何在PHP中使用不同的url结构?

时间:2011-07-17 09:20:23

标签: php

如何在php中使用不同的url结构?
我想知道像这样处理网址 www.example.com/10/2011
而不是 www.example.com/?m=10&y=2011

5 个答案:

答案 0 :(得分:2)

使用服务器配置可能会更好 - .htaccess(在Apache中)或web.config(在IIS中)。从^(\ d +)/(\ d +)$到/?m = $ 1& y = $ 2创建重写规则。例如,在Apache中它看起来像:

RewriteEngine On
RewriteBase /
RewriteRule ^(\d+)/(\d+)$ /?m=$1&y=$2

答案 1 :(得分:1)

这可以通过apache's mod_rewrite机制来实现。在您的webroot中创建一个.htaccess文件,其中包含以下内容:

RewriteEngine on

RewriteRule ^([0-9]+)/([0-9]+) ?m=$1&y=$2 [NC]

其他Web服务器也存在类似的机制。

答案 2 :(得分:0)

您应该在Apache或nginx中使用Rewrite(google it)引擎。 这样的事情也存在于国际空间站中。

答案 3 :(得分:0)

这不是由PHP实现的,而是由其他一些“组件”实现的。例如。 Apache Web服务器有一个模块(重写引擎),可以重写URL,以便您可以使用www.example.com/10/2011之类的URL,并将它们转换为www.example.com/?m=10&y=2011,这样在PHP代码中就可以使用$ _GET ['m']并获得月份。 Apache的Rewrite engine(对于其他类似的Web服务器可能存在)

答案 4 :(得分:0)

一种简单的方法是这样的:

在.htaccess文件中

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php?$1 [L,QSA]

如果它不是物理文件或目录,它会将每个人重定向到index.php。

然后配置index.php来处理此请求。

示例

www.example.com/10/2011

将成为$_GET['10/2011']; 所以你可以在脚本中使用数据。