需要更改htaccess重写代码

时间:2013-11-26 21:17:04

标签: php apache .htaccess codeigniter mod-rewrite

我刚刚遇到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代码和语法并阅读了许多文档,但它们也可能用中文编写,因为我可以从中获得所有意义。所以有人可以解释为什么那个额外的'?'需要什么,它做了什么?如果你能解释其余的代码,我将永远感激不尽!

1 个答案:

答案 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和处理程序的工作方式。