这是我的.htaccess文件阿帕奇重写规则:不良标识定界符
# Redirect every request to index.php
RewriteBase/
RewriteEngine on
RewriteRule .* to public/index.php
而且我收到的error.log中以下错误:
重写规则:不良标识定界符
有什么不对的.htaccess文件? (我刚开始玩弄mod_rewrite模块)。
编辑:.htaccess文件是在该网站的根目录。
这是我的.htaccess文件阿帕奇重写规则:不良标识定界符
# Redirect every request to index.php
RewriteBase/
RewriteEngine on
RewriteRule .* to public/index.php
而且我收到的error.log中以下错误:
重写规则:不良标识定界符
有什么不对的.htaccess文件? (我刚开始玩弄mod_rewrite模块)。
编辑:.htaccess文件是在该网站的根目录。
其他的人是对的,但不要忘记保持什么是在URL中?
后,它的QSA
标志,就像这样:
# Redirect every request to index.php
RewriteBase/
RewriteEngine on
RewriteRule .* public/index.php [QSA]
对不起奥利维尔但是这是不准确的。在[QSA]如果你想需要(“查询字符串附加”)标志*追加* q uery字符串参数到原始请求中的那个参数。如果只希望*保留原始请求的查询字符串,那么这是默认行为,并且不需要QSA。 [而且,如果你想完全剥离它,只需放一个“?”在重写规则的目标URL月底] HTH 克里斯 – cweekly 2014-01-28 18:45:52
从我自己的测试(注意我的关于重写规则答案的历史),我可以讲的是:如果你添加一些查询,即在这里:' public/index.php?aa = bb',那么你将失去原始请求中的内容。所以你可能是对的,但是我在这里讨论的是一个不会忘记的好原则,因为如果你不那么做,你会在某一天或那一天遇到麻烦。当我说“不要忘记保留后面的内容”时,这就是我的意思。 (也许我没有正确表达自己,如果是这样,我很抱歉) – 2014-01-29 19:49:58
所以,这里的所有答案都很好,但没有人提到我可以称之为好原则。如果你是对的,并且如果默认行为是保留原始请求的查询字符串 - 只要它没有被修改,则这不会增加开销。 – 2014-01-29 19:51:28
谢谢你,我是一个白痴:( – siannone 2012-01-03 20:13:18
还有一件事,当我使用'重写规则。*公共/ index.php'看起来像如果Web服务器被卡住了,我没有收到任何回应,但如果我使用'重写规则。* test.html'我”米corretly重定向到的test.html – siannone 2012-01-03 20:31:55
没关系,正好解决了这个问题。 – siannone 2012-01-03 21:02:50