如何解决带有参数的长URL的RewriteRule /如何美化它们?
| 在过去的几周中,我已经阅读了有关RewriteRules的所有内容。 你是我的不得已:D 我只是没有任何工作(是的,重写引擎已打开,简单的东西也可以工作)。 我的网站网址如下所示:http://www.videospielkalender.de/?platform=wii&setfilter=1&dates=2
我想要这样的结果
http://www.videospielkalender.de/wii/price/nextweek/
而已。
我希望这里的一些天才能够使我朝正确的方向前进。
谢谢大家
奥立佛
解决方法
http://wiki.apache.org/httpd/RewriteQueryString上的最后一个食谱是开始的地方。在上述特定情况下,您想要执行以下操作:
RewriteRule ^/?([^\\]+)/([^\\]+)/([^\\]+)/? /?platform=$1&setfilter=$2&dates=$3
但是,此解决方案有两个相当明显的问题。他们是:
如何将“价格”映射为“ 1”,如何将“下周”映射为“ 2”?也许这是您的处理程序/脚本/需要做的足够聪明的事情
您的网站上的其他URI(图片,css,js等)也可能会被此规则集捕获,这可能会破坏内容。
这两个条件都可以通过以下方式解决:
使脚本足够智能以处理参数
和
根本不要使用mod_rewrite。而是使用:
FallbackResource /index.php
(或您的根处理程序/脚本所调用的任何内容),并让该脚本/处理程序直接智能地操作PATH_INFO。
请记住,关于mod_rewrite的最重要的事情是知道何时避免使用它。
,您可以使用此通用规则将后一个URL路径重写为前一个:
RewriteRule ^/([^/]+)/([^/]+)/([^/]+)/$ /?platform=$1&setfilter=$2&dates=$3
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。