RewriteRule为1个文件的多个参数

时间:2015-11-04 20:51:25

标签: apache .htaccess mod-rewrite url-rewriting

我需要有关重写规则的帮助。 我有这样的网址结构 - index.php?page=team&id=45 但我也有index.php?page=news&page=1或者没有参数 - index.php?page=download ....

为每个页面参数制作重写规则是否可行? 例如:index.php?page=news&page=25 - > /news/25index.php?page=team&id=45 - > /team/45

我有这个重写规则RewriteRule ^([a-zA-Z0-9]+)$ index.php?page=$1 [QSA],但它只更改& page =而不是其他参数。 谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

是的,你可以这样做。

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

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\ /+index\.php\?page=(team|news)&(?:id|page)=([^\s&]+)
RewriteRule ^ %1/%2? [R=301,L]

RewriteRule ^team/([a-zA-Z0-9]+)/?$ index.php?page=team&id=$1 [QSA,L]
RewriteRule ^news/([a-zA-Z0-9]+)/?$ index.php?page=news&page=$1 [QSA,L]