网络解决方案的Codeigniter的mod_rewrite

时间:2011-12-06 16:35:01

标签: .htaccess codeigniter

我的Codeigniter 2.1安装在我的本地测试服务器(XAMPP)上正常运行,但是当我将其移动到我的网络解决方案托管上的测试子域时,我无法获取.htaccess来删除index.php。我已经尝试重写路径为“/ htdocs / test”和/ test但我仍然收到以下错误:

  

内部服务器错误

     

服务器遇到内部错误或配置错误,无法完成您的请求。

     

请与服务器管理员联系,[无地址]并告知错误发生的时间,以及可能导致错误的任何操作。

     

服务器错误日志中可能提供了有关此错误的更多信息。

     

此外,尝试使用ErrorDocument处理请求时遇到500内部服务器错误错误。

<IfModule mod_rewrite.c>
SetEnv APPLICATION_ENV development
RewriteEngine On
RewriteBase /test

#Removes access to the system folder by users.
#Additionally this will allow you to create a System.php controller,
#previously this would not have been possible.
#'system' can be replaced if you have renamed your system folder.
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php/$1 [L]

#Checks to see if the user is attempting to access a valid file,
#such as an image or css document, if this isn't true it sends the
#request to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#This last condition enables access to the images and css folders, and the robots.txt file
#Submitted by Michael Radlmaier (mradlmaier)
RewriteCond $1 !^(index\.php|images|robots\.txt|css)
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
# If we don't have mod_rewrite installed, all 404's
# can be sent to index.php, and everything works as normal.
# Submitted by: ElliotHaughin

ErrorDocument 404 /index.php
</IfModule>

我的子域名位于/ htdocs / test

谢谢!

2 个答案:

答案 0 :(得分:0)

httpd.conf最有可能出现问题,如果你没有能力自己编辑,你可以在外面联系你的主机支持。如果您能够在主机上编辑Apache配置,则可以发布该配置,我们可以帮助您。

模块已加载但可能不允许您的目录重写,特别是不允许它遵循符号链接,这就是它的工作方式。

答案 1 :(得分:0)

首先,确保在apache中安装了mod_rewrite模块。杀死MAIN index.php文件顶部的脚本:

<?php die(var_dump(apache_get_modules())); ?>

如果您未在任何地方看到mod_rewrite,则

要安装它,请在您的服务器上运行以下命令(如果您有权访问),

sudo a2enmod rewrite

然后我为我启用了mod_rewrite,它运行正常。

如果您没有超级用户访问权限,则可能需要联系客户支持,看看他们是否可以为您启用。