[英]500 Internal Server Error CodeIgniter htaccess mod_rewrite
[英].htaccess mod_rewrite > 500 Internal Server Error
我正在使用.htaccess。
我的原始链接是:
http://example.com/CareerDays/index.php?u_type=admin
我正在尝试使其看起来像这样:
http://example.com/v/admin
整个代码如下所示:
RewriteEngine On
RewriteRule ^v/([^/]*)$ /CareerDays/index.php?u_type=$1 [L]
我总是得到
“ 500内部服务器错误 ”
当您将配置指令放在.htaccess文件中时,您没有得到预期的效果,可能有很多事情出错了。
最常见的问题是,未设置httpd.conf文件中的AllowOverride 指令,因此无法使用您的配置指令。 确保所涉及的文件范围没有有效的AllowOverride None。 一个很好的测试方法是将垃圾放入.htaccess文件中,然后重新加载页面。 如果未生成服务器错误,则几乎可以肯定,AllowOverride None有效。
另一方面,如果在尝试访问文档时遇到服务器错误,请检查httpd错误日志。 它可能会告诉您,不允许在.htaccess文件中使用的指令。
[2010年9月17日星期五18:43:16] [警告] [客户端192.168.200.51] /var/www/html/.htaccess:此处不允许使用DirectoryIndex
这将表明您已经使用了.htaccess文件中永远不允许的指令,或者您只是没有将AllowOverride设置为足以满足所使用指令的级别。 请查阅该特定指令的文档以确定哪种情况。
或者,它可能告诉您在使用指令本身时出现语法错误。
[2008年8月9日星期六16:22:34] [警告] [客户端192.168.200.51] /var/www/html/.htaccess:RewriteCond:错误标志分隔符
在这种情况下,错误消息应特定于您所提交的特定语法错误。
您必须在httpd.conf文件中将AllowOverride设置为'All'或'FileInfo',才能在.htaccess文件中具有mod_rewrite指令的权限。
在我的主机上,我需要添加第一行: RewriteBase /
直到那时我也收到内部服务器错误。
这个RewriteRule永远不会匹配...
您必须使用以下代码将.htaccess放在根目录中:
RewriteEngine On
RewriteRule ^v/([^/]*)$ CareerDays/index.php?u_type=$1 [L]
检查您的../apache/conf/httpd.conf并查找:
#LoadModule rewrite_module modules/mod_rewrite.so
如果井号(#)作为第一个字母出现,请将其删除,保存并重新启动服务器。
该.htaccess不属于CareerDays。 如果您向根目录之外的目录发出请求,则服务器FIRST会检查该目录是否存在,如果不存在,则它将优先于ROOT .htaccess。 它不会think
在不相关的目录中检查.htaccess。
去掉:
Options +FollowSymLinks
然后从您的FTP客户端以ASCII模式上传到根文件夹。
500错误通常是文件权限错误而不是其他任何原因的结果。 检查您的.htaccess文件的权限。
所需的权限因环境而异(我想这是在Linux上-在Widows上应该不是问题)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.