我有以下链接
http://xyz.com/path1/path2/page/par1/par1value/par2/par2value/par3/par3value ....未定义的参数数量
我希望通过mod_rewrite将其转换为类似的东西:
http://xyz.com/path1/path2/page.php?par1=par1value&par2=par2value&par3=par3value&par4=par4value ...
我做了很多尝试,但没有一次完全成功。 我最终得到了类似的东西 - 对于2个参数(虽然它不会重复)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)\/(.+)\/(.+)\/(.+)\/(.+)[^/]+$ $1.php?$2=$3&$4=$5 [L]
我对此解决方案不满意, 请帮我正确建设条件
提前致谢 诺贝特
答案 0 :(得分:0)
最后我这样做了:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+?)/(.*?)$ $1.php?route=$2 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ $1.php [L]
和
从GET数组中删除“路由”作为SEO类的一部分
public static function router($router = "route") {
if ($route = GetFromGet($router)) {
$arr = preg_split('/\//', $route);
if (sizeof($arr)) {
unset($_GET[$router]);
foreach ($arr as $key => $value) {
if (($key % 2) == 1) {
$_GET[$arr[$key - 1]] = $value;
}
}
}
}
}
所以,在我的公共文件的开头,我称之为:
SEO::router();
以上解决了这个问题,不过我仍然很好奇mod_rewrite本身是否有可能。