mod-rewrite index.php

时间:2010-01-17 13:43:09

标签: apache mod-rewrite

我有这些URL s:

index.php?area=guilds
index.php?area=guilds&page=create
index.php?area=guilds&page=view&name=The+Unit

我能以某种方式只有1个重写规则吗?

/guilds
/guilds/create
/guilds/view/The+Unit

2 个答案:

答案 0 :(得分:0)

请尝试以下规则:

RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]
RewriteRule ^[^/]+$ index.php?area=$0 [L]
RewriteRule ^([^/]+)/([^/]+)$ index.php?area=$1&page=$2 [L]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)$ index.php?area=$1&page=$2&name=$3 [L]

第一条规则是避免重写已经映射到现有文件的URL。其他规则反映了你的三个案例。

答案 1 :(得分:0)

这个应该有效:

RewriteRule    /(.+)(?:/(.+))?(?:/(.+))?   index.php?area=$1&page=$2&name=$3