Kohana,.htaccess和$ _GET

Sam*_*son 5 php .htaccess mod-rewrite get kohana

将我的Kohana项目上传到Godaddy服务器之后,我注意到我的标准.htaccess文件无法正常工作以提供干净的URL.经过一些指导,我最终得出以下规则:

RewriteRule .* index.php?kohana_uri=$0 [PT,L]
Run Code Online (Sandbox Code Playgroud)

这让我的好网址再次运行,但今天我发现它可能会破坏我的内部搜索引擎,它也使用GET风格的变量:

/search?terms=php
Run Code Online (Sandbox Code Playgroud)

脚本找不到这些值.它们位于我的开发服务器上,它没有修改过的RewriteRule,但是没有使用RewriteRule的Godaddy服务器.

我是否正确地假设该规则打破了任何脚本从$ _GET读取的能力,如果是这样,我该如何解决这个问题呢?

Pas*_*TIN 8

也许在你的rewriterules中使用QSA,如下所示:

RewriteRule .* index.php?kohana_uri=$0 [PT,QSA,L]
Run Code Online (Sandbox Code Playgroud)

请参阅mod_rewrite手册(引用):

'qsappend | QSA'(查询字符串追加)

此标志强制重写引擎将替换字符串的查询字符串部分附加到现有字符串,而不是替换它.如果要通过重写规则向查询字符串添加更多数据,请使用此选项.

可能有帮助(没有在你的特定情况下进行测试,但我记得前一段时间已经使用过这个问题,比如这个问题)