Kohana中,htaccess的,和$ _GET
-
13-09-2019 - |
题
上传我的Kohana项目到我的Godaddy的服务器后,我发现我的标准.htaccess文件没有得到足够的工作,提供洁净的网址。一些指导后,我结束了以下规则:
RewriteRule .* index.php?kohana_uri=$0 [PT,L]
这得到了我很好的URL重新工作,但今天我发现,它可能打破我的内部搜索引擎,它也使用GET风格的变量:
/search?terms=php
的值不是由脚本找到。他们是我发展的服务器上不具备修改重写规则,但不是其确实使用了重写规则GoDaddy的服务器上。
我是正确的假设,规则被打破任何脚本从$ _GET的阅读能力,如果是这样我怎么能解决这个问题?
解决方案
也许使用QSA在你的RewriteRules,如下所示:
RewriteRule .* index.php?kohana_uri=$0 [PT,QSA,L]
请参阅mod_rewrite的(引用)的手册:
'qsappend | QSA'(查询字符串附加)
此标记强制重写引擎追加一个查询字符串部分 替换字符串到的 现有的字符串,而不是替换 它。当你想添加更多使用此 数据经由重写查询字符串 规则。
可以帮助(你的具体情况没有测试,但我记得有这个前一段时间使用,某种问题,像这样的)
其他提示
我想你可以添加:RewriteCond $1 !^(search)
,或者这样的变化
如果你想使用标准的做法,并没有查询字符串,你只是需要遵循这些步骤,将工作就像本地主机,不需要改变重写规则。
转到您的GoDaddy的帐户,文件管理器 - >的WebRoot目录 - >创建php5.ini如果它不存在,它的地方以下行:cgi.fix_pathinfo = 1
现在,您需要重新启动您的Web程序:
1)登录到您的客户经理。 2)单击虚拟主机。 3)接下来你要使用的托管帐户,单击启动。 4.)在统计及显示器部分中,点击系统进程。 5)在左侧的列表中,单击要查看或点击所有进程同时看到所有进程的进程。 6.)要结束处理,点击工具栏上的对应的结束按钮。
现在你可以使用URI_PROTOCOL为自动。