1

我正在尝试使用 mod 重写来实现更好的 url,我编写了一个 php 脚本来查看按条目名称从 mysql 数据库中提取的文档。我使用以下代码,它工作正常。

RewriteRule ^view.doc.(.+)  index.php?doc=$1

所以基本上

view.doc.xyz whould be index.php?doc=xyz

但是我在通过重写的链接查看带有“/”和“\”的条目名称时遇到了问题。

view.doc.abc/123 into index.php?doc=abc/123

或喜欢

view.doc.sg1\123 到 index.php?doc=sg1\123

以太我会得到一个无限循环或得到一个 404 错误。我对 mod rewrite 很陌生,我非常感谢任何关于此事的帮助。

4

2 回答 2

0

试试这个规则:

RewriteRule ^view\.doc\.(.+)$ index.php?doc=$1 [L,QSA,NE,NC]
于 2013-11-19T20:23:17.407 回答
0

我提出了一个与@anubhava 的解决方案略有不同的解决方案,方法是在 index.php 之前添加一个斜杠,在 Debian/Apache2 上进行了测试:

RewriteEngine On
RewriteRule ^view\.doc\.(.+)$ /index.php?doc=$1 [L,QSA,NE,NC]

它给:

view.doc.abc/123 => /index.php?doc=abc/123

我无法测试反斜杠 \,因为没有浏览器允许我在 URL 中测试它而不将其转换为斜杠 /。

于 2013-11-19T23:15:47.610 回答