Codeigniter URL重写.htaccess不适用于CentOS

Rav*_*a ツ 2 linux apache .htaccess mod-rewrite codeigniter

我在我的文档根目录中创建了一个.htaccess文件,/var/www/html/用于重写Codeigniter的URL以从所有页面的URL中删除"index.php".

例如,更改URL

http://myhost/index.php/controller/function
Run Code Online (Sandbox Code Playgroud)

http://myhost/controller/function`
Run Code Online (Sandbox Code Playgroud)

这是我的`/var/www/html/.htaccess的代码

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
Run Code Online (Sandbox Code Playgroud)

我通过谷歌搜索获得了许多建议来启用mod-rewrite模块,但我可以看到我httpd.conf已经启用它.

LoadModule rewrite_module modules/mod_rewrite.so
Run Code Online (Sandbox Code Playgroud)

这完全适用于在Debian 7(Apache/2.4.4)上运行的本地系统.

任何帮助,将不胜感激.:)

小智 12

您还需要指定可以使用它的位置.例如,在/etc/httpd/conf/httpd.conf中你应该看到类似的东西:

<Directory "/var/www/html">

      ...lots of text...

</Directory>
Run Code Online (Sandbox Code Playgroud)

确保有:

<Directory "/var/www/html">

    AllowOverride All

</Directory>
Run Code Online (Sandbox Code Playgroud)