如何在php中使用不同的url结构?
我想知道像这样处理网址
www.example.com/10/2011
而不是
www.example.com/?m=10&y=2011
答案 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']
;
所以你可以在脚本中使用数据。