以有条件的方式获取分页参数

时间:2014-03-21 14:09:00

标签: regex apache .htaccess mod-rewrite

我在.htaccess文件中使用了以下内容。从网址我必须得到结果1)城市基于2)城市基于分页3)城市和类别基于4)城市和类别以分页为基础。

RewriteCond %{THE_REQUEST} \s/+filter\.php?cityselect=([^&\s]+) [NC]
RewriteRule ^ %9? [R=301,L,NE]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/\.]+)/?$ store.php?city=$1 [QSA,L]
RewriteRule ^([^/\.]+)/([^/\.]+)/?$ store.php?city=$1&page=$2 [QSA,L]
RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)/?$ store.php?city=$1&category=$2&page=$3 [QSA,L]

我需要改进这些类型条件的结果 1. www.domain.com/cityname
2. www.domain.com/cityname/1
3. www.domain.com/cityname/category
4. www.domain.com/cityname/category/2

print_r($ _ GET):如果我使用第3个链接,那么$ _GET [' page']参数正在调用,这里我需要$ _GET [' category']并且到处都是最后一个参数是页码。如何获取获取参数值的条件格式。

1 个答案:

答案 0 :(得分:0)

有这样的话:

RewriteCond %{THE_REQUEST} \s/+filter\.php?cityselect=([^&\s]+) [NC]
RewriteRule ^ %1? [R=301,L,NE]

RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]

RewriteRule ^([^/.]+)/?$ store.php?city=$1 [QSA,L]

RewriteRule ^([^/.]+)/([0-9]+)/?$ store.php?city=$1&page=$2 [QSA,L]

RewriteRule ^([^/.]+)/([^/.]+)/?$ store.php?city=$1&category=$2 [QSA,L]

RewriteRule ^([^/.]+)/([^/.]+)/([^/.]+)/?$ store.php?city=$1&category=$2&page=$3 [QSA,L]