【发布时间】:2012-04-18 06:02:28
【问题描述】:
我已经阅读了有关 mod_rewrite 的每一个教程,但我无法弄清楚。
我想将搜索网址从 www.domain.com/?s=query 重写为 www.domain.com/search/query。
到目前为止,我设法使用此规则实现了这一点:
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /(#[^?&\ ]*)?\?([^&\ ]*&)?s=([^&\ ]+)[^\ ]*\ HTTP/
RewriteRule ^$ http://www.domain.com/search/%3? [R=301,L]
问题是某些查询会导致有多个搜索结果页面可以通过www.domain.com/?s=query&nggpage=n 访问(其中 n 优于 2)。
在这种情况下,我想重写它并最终得到如下网址:www.domain.com/search/query/nggpage-n。
不太确定如何实现这一点。我正在寻求帮助。
【问题讨论】:
-
恕我直言,您可以尝试拆分问题,例如分别处理
nggpage和另一种情况。 -
当您说要将
www.domain.com/?s=query重写为www.domain.com/search/query时,您的意思是如果有人键入第一个,您希望浏览器窗口重定向到第二个,还是希望人们键入第二个要改写成第一个? -
当有人键入 www.domain.com/?s=query 时,他会被重定向到 www.domain.com/search/query 女巫具有相同的内容。给定的规则已经成功了,但是在处理第二个变量(nggpage)时,这就是困难的部分。是的@g13n 我已经尝试过但没有成功。
标签: .htaccess mod-rewrite