.htaccess mod_rewrite> 500内部服务器错误
我是新的.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内部服务器错误 ”:(
有什么build议么 ?
当你把configuration指令放在.htaccess文件中,而你没有得到想要的效果时,有很多事情可能会出错。
最常见的问题是, httpd.conf文件中的AllowOverride 指令没有设置,因此您的configuration指令正在被遵守。 请确保没有AllowOverride None有效的文件范围有问题。 一个好的testing是将垃圾放入.htaccess文件并重新加载页面。 如果服务器错误没有生成,那么你几乎肯定会有AllowOverride None。
另一方面,如果在尝试访问文档时出现服务器错误,请检查httpd错误日志。 它可能会告诉你,你的.htaccess文件中使用的指令是不允许的。
[Fri Sep 17 18:43:16 2010] [alert] [client 192.168.200.51] /var/www/html/.htaccess:DirectoryIndex不允许在这里
这将表明您已经使用了在.htaccess文件中从不允许的指令,或者您没有将AllowOverride设置为您所使用指令的级别。 请查阅该特定指令的文档以确定是哪种情况。
或者,它可能会告诉您,您在使用指令本身时出现语法错误。
[2009年8月9日星期六16:22:34] [alert] [client 192.168.200.51] /var/www/html/.htaccess:RewriteCond:bad flag delimiters
在这种情况下,错误消息应该特定于您提交的特定语法错误。
您必须在httpd.conf文件中将AllowOverride设置为“All”或“FileInfo”,才能在.htaccess文件中拥有mod_rewrite指令的权限。
在我的托pipe,我需要添加第一行: RewriteBase /
直到然后我也得到内部服务器错误。
这个RewriteRule永远不会匹配…
您必须将.htaccess放在根目录下,使用以下代码:
RewriteEngine On RewriteRule ^v/([^/]*)$ CareerDays/index.php?u_type=$1 [L]
.htaccess不属于CareerDays。 如果您向根目录下的某个目录写入请求,则服务器FIRST会检查该目录是否存在,如果不存在,则将优先于ROOT .htaccess。 它不会think
在一个不相关的目录中检查.htaccess。
去掉:
Options +FollowSymLinks
然后从您的FTP客户端以ASCII模式上传到根文件夹。
500错误通常是文件许可错误而不是其他任何错误的结果。 检查您的.htaccess文件的权限。
所需的权限取决于环境(我认为这是在Linux上 – 不应该是寡妇问题)。
检查你的../apache/conf/httpd.conf并寻找:
#LoadModule rewrite_module modules/mod_rewrite.so
如果哈希符号(#)显示为第一个字母,请将其删除,保存并重新启动服务器。