我正在尝试使用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
Ether我会得到无限循环或得到404错误。我对mod重写很新,我非常感谢你对此事的任何帮助。
答案 0 :(得分:0)
尝试此规则:
RewriteRule ^view\.doc\.(.+)$ index.php?doc=$1 [L,QSA,NE,NC]
答案 1 :(得分: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中测试它而不将其转换为斜杠/。