codeigniter Redhat:.htaccess不工作

pkln4tw6  于 4个月前  发布在  其他
关注(0)|答案(2)|浏览(44)

在codeignitor .htaccess不工作的redhat服务器上相同.htaccess是完美的工作在本地服务器即xampp也改变了“允许无”到“允许所有”.请给予答案与相应的“redhat”只.

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA] 
</IfModule>

字符串
phpinfo()显示Apache Configuration

rseugnpd

rseugnpd1#

重写模块似乎是从你的屏幕截图加载的。你也可以通过添加这一节来从你的VirtualHost中启用.htaccess:

#Enable readin .htaccess
  <Directory "/var/www/html/mysite">
    AllowOverride All
  </Directory>

字符串

vohkndzv

vohkndzv2#

如果您的.htaccess文件在红帽服务器上无法正常工作,您可以检查和调整一些事项。以下是故障排除和解决问题的一些步骤:

校验mod_rewrite模块:

请确保在Apache服务器上启用了mod_rewrite模块。您可以通过运行以下命令来执行此操作:

sudo apachectl -M | grep rewrite

字符串
如果未列出该模块,您可能需要启用它。在基于红帽的系统上,您可以用途:

sudo a2enmod rewrite


启用模块后,重启Apache:

sudo systemctl restart httpd

检查允许设置:

正如您所提到的,您已经更改了AllowPath指令。请确保在正确的配置文件中进行更改。在Red Hat系统上,Apache配置通常位于/etc/httpd/conf/httpd.conf文件中。
打开Apache配置文件:

sudo nano /etc/httpd/conf/httpd.conf


找到与您的Web目录对应的部分,并确保它包含以下或类似的行:
apache:

<Directory "/var/www/html">
   AllowOverride All
</Directory>


修改后,重启Apache:

sudo systemctl restart httpd

**检查.htaccess文件位置:**确保.htaccess文件位于CodeIgniter应用程序的根目录中。
**在.htaccess中验证RewriteBase:**在您的.htaccess文件中,您可以尝试添加或修改RewriteBase指令。例如:

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteBase /your-subdirectory-if-any/
   RewriteCond $1 !^(index\.php|resources|robots\.txt)
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteRule ^(.*)$ index.php/$1 [L,QSA]
</IfModule>


调整RewriteBase以匹配应用程序的结构。

检查Apache错误代码:

检查Apache错误日志中与.htaccess文件相关的任何消息。错误日志位置可能会有所不同,但通常位于/var/log/httpd/error_log中。查找可能指示问题来源的任何错误或警告。
sudo tail -f /var/log/httpd/error_log
在进行这些调整后,.htaccess文件应该可以在Red Hat服务器上正常工作。如果您遇到其他问题,请查看Apache错误日志,以进一步了解问题。

相关问题