当前位置:  开发笔记 > 编程语言 > 正文

Mod-rewrite shenanigans

如何解决《Mod-rewriteshenanigans》经验,为你挑选了1个好方法。

我有这个重写规则

RewriteEngine On
RewriteBase /location/
RewriteRule ^(.+)/?$ index.php?franchise=$1

这是假设要更改此URL

http://example.com/location/kings-lynn

进入这一个

http://example.com/location/index.php?franchise=kings-lynn

但相反,我得到了这个

http://example.com/location/index.php?franchise=index.php

此外,添加栏杆斜线会打破它.我得到index.php页面显示但没有样式表或javascript正在加载.

我显然做了一些非常错误但我不知道尽管在这里花了一整天R'ingTFM和许多在线引物和教程和问题.



1> Kent Fredric..:

你的问题是你重定向两次.

'location/index.php' 匹配正则表达式 ^(.+)/?$

您希望可能使用"if file not exists"条件使其不再尝试映射.

RewriteEngine on
RewriteBase /location/
RewriteCond %{REQUEST_FILENAME} !-f   # ignore existing files
RewriteCond %{REQUEST_FILENAME} !-d   # ignore existing directories
RewriteRule ^(.+)/?$ index.php?franchise=$1  [L,QSA]

另外,还有[L,QSA]试图使其成为"最后"规则(注意,这并不完全明显它是如何工作的)并将查询字符串附加到查询中,以便

location/foobar/?baz=quux  ==> index.php?franchise=$1&baz=quux

( 我认为 )

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有