2009-06-04 68 views
1

我是mod_rewrite的新手,我想知道是否有任何方法可以对重写脚本进行处理,并且会抛出多少变量。mod_rewrite对于任何数量的变量

例子:

www.krisnicolaou.com/index.php?id=5&sort=asc&limit=25&param=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

所以你想要第一个窗体(`/index.php?page = view&action = add`)的请求URL被外部重定向到第二个窗体(`/ view/add /`)?还是你想要反向? – Gumbo 2009-06-04 14:09:07

回答

1

类似于this

+0

Torez和great_llama,所以你们中的一个人与之相关联,另一个人接受了这个链接作为答案,但你们都不认为最初的答案值得赞赏吗?爱在哪里? – bmb 2009-12-17 19:40:47

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

附加PARAMS(404)测试 http://www.theeggeadventure.com/2009/index.htm?page=view&action=add&foo=bar URL /2009/view/add/bar/index.htm此服务器上找到。

+1

嘿,感谢您的快速反应,但由于某种原因,它不工作。任何想法为什么?而不要说“你打开重写引擎”:) 谢谢 – Torez 2009-06-04 18:23:17