我刚刚遇到Codeigniter网站的问题,在托管公司将文件迁移到新服务器之后,我无法再离开主页了。我用Google搜索了一个类似问题的论坛,答案就是我的htacess文件。以前是这样的:
Options FollowSymLinks
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
并且给定的解决方案是添加'?' 'index.php'之后的字符。我做到了,然后一切正常。
我努力理解htaccess代码和语法并阅读了许多文档,但它们也可能用中文编写,因为我可以从中获得所有意义。所以有人可以解释为什么那个额外的'?'需要什么,它做了什么?如果你能解释其余的代码,我将永远感激不尽!
答案 0 :(得分:1)
您的新主机的php处理程序或网络服务器未设置为处理 PATH INFO ,或者是脚本(index.php)之后的实际路径的一部分,例如
/index.php/this/is/part/of/the/path_info
执行index.php
脚本,之后的所有内容都可以通过“PATH_INFO”获取。如果服务器不处理此问题,代码点火器可以选择处理作为 QUERY STRING 传入的路径。哪个是?
后面的参数。
这些都与htaccess或mod_rewrite无关。这就是URL和处理程序的工作方式。