我是mod_rewrite的新手,我想知道你是否有办法在重写脚本上处理你输入的变量和数量。
例:
www.krisnicolaou.com/index.php?id=5&sort=asc&limit=25¶m=first_name
要
www.krisnicolaou.com/5/asc/25/first_name
...但是,你也可以在另一个页面上传递这些变量,它可以用于那个脚本:
www.krisnicolaou.com/index.php?page=view&action=add
要
www.krisnicolaou.com/view/add/
我基本上不希望限制我可以在最后添加多少参数而不必不断修改.htaccess文件。
提前致谢。
答案 0 :(得分:1)
类似于this。
答案 1 :(得分:1)
通常一个人想要“干净”的网址,并将它们转换为参数。你要求的是相反的。这是一个测试规则集。
RewriteEngine on
RewriteCond %{QUERY_STRING} !^$
RewriteCond %{QUERY_STRING} ^([^=]*)=([^&]*)(&.*)?
RewriteRule ^(.*/)?([^/]+) $1%2/$2?%3 [L]
如果有参数,这将运行,并且对于每个参数,它将把它添加到URL并从参数列表中删除它。 [N]将导致它运行,直到没有更多参数。
为了测试,我创建了以下结构:
view
view/add
view/add/index.htm
我将上述规则放在.htaccess文件中。
正常测试: http://www.theeggeadventure.com/2009/index.htm?page=view&action=add
其他参数(404)测试 http://www.theeggeadventure.com/2009/index.htm?page=view&action=add&foo=bar 在此服务器上找不到URL /2009/view/add/bar/index.htm。