Anj*_*jum 11 php .htaccess codeigniter
我们在godaddy有两个托管包.我们的实时网站使用以下.htaccess文件正常工作.无需在url中使用index.php即可访问网站.
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
Run Code Online (Sandbox Code Playgroud)
我们在godaddy的其他主机上使用了相同的htaccess文件和相同的代码.我们只是想让生产和开发实例分开.但在其他主机上使用相同的代码和htaccess文件,网站显示404页面找不到错误,但网站在url中的index.php工作正常.
我们在两台服务器上都有相同的php版本.只是想知道可能是什么问题?
Geo*_*mes 10
当我将100%工作代码移动到专用Debian服务器时,我也遇到了类似的问题.经过3个小时的研究,我发现了htaccess文件无法正常工作的原因.您需要在Apache配置中允许覆盖htaccess.
这是步骤.
步骤1:
在htaccess文件中添加它
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
</IfModule>
Run Code Online (Sandbox Code Playgroud)
第2步:
删除codeigniter配置中的index.php
$config['index_page'] = '';
Run Code Online (Sandbox Code Playgroud)
第3步:
允许覆盖Apache配置(命令)中的htaccess
sudo nano /etc/apache2/apache2.conf
Run Code Online (Sandbox Code Playgroud)
并编辑文件并更改为
AllowOverride All
Run Code Online (Sandbox Code Playgroud)
对于www文件夹
第4步:
重启Apache(命令)
sudo /etc/init.d/apache2 restart
Run Code Online (Sandbox Code Playgroud)
在apache2.conf文件中进行任何更改之前,请确保制作该文件的备份副本.如果您使用的是Debian服务器,则可以避免使用sudo命令.我相信你知道如何使用像putty这样的ssh客户端软件连接到你的服务器.如果此方法不适合您,请在下方注释.