1

我想将带有参数的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]

我如何“翻译”一组参数的路径以在查询中使用它们?

4

2 回答 2

1

你倒过来了。您希望从用户那里收到请求,然后将http://www.example.com/books/thriller/1重写为供 PHP 处理。这样,用户会看到“友好”的 URL,而 PHP 会看到对其友好的格式。index.php?qs=$1

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

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

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

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

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

array( 'books', 'thriller', '1' )
于 2013-04-02T15:28:22.850 回答
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
于 2013-04-02T15:33:30.310 回答