繁体   English   中英

.htaccess mod_rewrite> 500内部服务器错误

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

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

在我的主机上,我需要添加第一行: 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM