我在过去几周里读到了关于RewriteRules的所有内容。 你是我的最后一招:D
我只是没有任何工作(是的,Rewrite Engine已启用且简单的工作正常)。
我的网站网址如下所示:
http://www.videospielkalender.de/?platform=wii&setfilter=1&dates=2
我想要一个像这样的结果
http://www.videospielkalender.de/wii/price/nextweek/
就是这样。 我希望这里的一些天才可以给我一个正确方向的推动。
谢谢大家 奥利弗
答案 0 :(得分:3)
http://wiki.apache.org/httpd/RewriteQueryString上的最后一个食谱是开始的地方。在上面提到的特定情况下,您需要执行以下操作:
RewriteRule ^/?([^\]+)/([^\]+)/([^\]+)/? /?platform=$1&setfilter=$2&dates=$3
然而,这个解决方案存在两个相当明显的问题。他们是:
我们如何将“price”映射到“1”和“nextweek”到“2”?也许这是你的处理程序/脚本/任何需要变得足够聪明的事情
您的网站上的其他URI(图片,css,js等)也可能被此规则集捕获,这可能会破坏内容。
这两个条件都可以通过以下方式解决:
FallbackResource /index.php
(或者调用任何根处理程序/脚本)并让该脚本/处理程序直接智能地操作PATH_INFO。
请记住,mod_rewrite最重要的是知道何时避免它。
答案 1 :(得分:2)
您可以使用此通用规则将后一个URL路径重写为前一个:
RewriteRule ^/([^/]+)/([^/]+)/([^/]+)/$ /?platform=$1&setfilter=$2&dates=$3