.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指令的权限。

http://httpd.apache.org/docs/2.2/howto/htaccess.html

在我的托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 

如果哈希符号(#)显示为第一个字母,请将其删除,保存并重新启动服务器。