我们在godaddy上有两个托管软件包。我们的live网站使用以下.htaccess文件运行良好。无需在url中使用index.php即可访问网站。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L] 我们在其他主机上使用了相同的htaccess文件和相同的代码。我们只是想让生产和开发实例分离。但是在其他主机上使用相同的代码和htaccess文件,网站显示404页面没有找到错误,但网站在url中使用index.php运行良好。
我们在两个服务器上都有相同的php版本。只是想知道问题出在哪里?
发布于 2017-04-10 17:00:58
当我将100%的工作代码转移到Debian专用服务器上时,我也遇到了类似的问题。经过3个小时的研究,我发现为什么htaccess文件不是working.You需要允许在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>第2步:
删除codeigniter配置中的index.php
$config['index_page'] = '';第3步:
允许覆盖Apache配置中的htaccess (命令)
sudo nano /etc/apache2/apache2.conf并编辑文件&更改为
AllowOverride All对于www文件夹
第4步:
重新启动Apache (命令)
sudo /etc/init.d/apache2 restart在apache2.conf文件中进行任何更改之前,请确保备份该文件。如果你正在使用Debian服务器,你可以避免使用sudo命令。我相信您知道如何使用像putty这样的ssh客户端软件连接到您的服务器。如果此方法对您不起作用,请在下面进行评论。
发布于 2017-04-15 03:01:43
请遵循以下内容
RewriteEngine on RewriteBase / RewriteCond $1 !^(index.php|resources|robots.txt|static) NC RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/?$1 L,QSA
如果您可以在命令行上使用命令ssh username@ip_address通过ssh进入服务器,那么无论是Linux终端还是Putty
username是由GoDaddy提供给您的,您也可以使用root
ip_address将是您主机的公共IP,您可以在主机面板中找到它
运行命令sudo a2dissite 000-default
该命令禁用处理请求的默认apache配置
祝你好运!
发布于 2017-04-11 15:22:28
你可以用这个。这对我在godaddy托管中是有效的。
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) index.php?/$1https://stackoverflow.com/questions/43284147
复制相似问题