将URL转换为一组GET参数

时间:2013-04-02 15:17:23

标签: php url parameters get

我想将带参数的url翻译成路径,即

http://www.example.com/?page=1 => http://www.example.com/1
http://www.example.com/?section=books&category=thriller&page=1 => http://www.example.com/books/thriller/1

然后我希望能够获得所有这些参数,以便在查询中使用它们,以便根据这些参数进行选择,我不知道从哪里开始,我该怎么做?我使用此.htaccess将我的所有请求重定向到index.php

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ index.php/$1 [QSA,L]

我怎样才能翻译"在查询中使用它们的一组参数的路径?

2 个答案:

答案 0 :(得分:1)

你倒退了。您希望将请求作为http://www.example.com/books/thriller/1从用户处获得,然后将 重写为index.php?qs=$1以供PHP处理。这样用户就可以看到“友好”的URL,而PHP会看到对它友好的格式。

因此,您的重写规则将更改为:

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

然后您可以通过以下方式访问其内容:

$myQueryVars = explode('/', $_GET['qs']);

http://www.example.com/books/thriller/1变为

array( 'books', 'thriller', '1' )

答案 1 :(得分:0)

我会做这样的事情......

RewriteRule ^([0-9]+)$ index.php?page=$1
RewriteRule ^([0-9a-zA-Z]+)/([0-9a-zA-Z]+)/([0-9]+)$ index.php?section=$1&category=$2&page=$3