使用.htaccess和apache mod_rewrite来获得灵活的动态重定向规则?

时间:2013-02-01 14:25:41

标签: .htaccess mod-rewrite redirect dynamic rewrite

我想使用.htaccess和apache模块mod_rewrite来提供灵活和动态 URL处理。

例如:我想通过mod-rewrite将最多4个变量传递给php脚本。

http://www.myfantasticsite.com/Var1/Var2/Var3/Var4

实现这一点并不复杂:

RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)$ /index.php?var1=$1&var2=$2&var3=$3&var4=$4 [L]

但问题是:我想要一个动态且灵活的网址处理。这意味着 变量2(Var2),变量3(Var3)和变量4(Var4)是可选的。重定向也适用于这种网址:

http://www.myfantasticsite.com/Var1/Var2/Var3
http://www.myfantasticsite.com/Var1/Var2
http://www.myfantasticsite.com/Var1

但我自己还没有找到一种允许这种灵活处理的方法。我的所有尝试都以内部服务器错误结束。

1 个答案:

答案 0 :(得分:0)

使用?使其他网址部分可选。

RewriteRule ^([^/]+)(/([^/]+))?(/([^/]+))?(/([^/]+))?$ /index.php?var1=$1&var2=$3&var3=$5&var4=$7 [L]