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

Pin*_*nky 1 php .htaccess mod-rewrite friendly-url

我正在使用.htaccess.

我原来的链接是:

http://example.com/CareerDays/index.php?u_type=admin
Run Code Online (Sandbox Code Playgroud)

而我正试图让它看起来像这样:

http://example.com/v/admin
Run Code Online (Sandbox Code Playgroud)

整个代码如下所示:

RewriteEngine On
RewriteRule ^v/([^/]*)$ /CareerDays/index.php?u_type=$1 [L]
Run Code Online (Sandbox Code Playgroud)

我总是得到

" 500内部服务器错误 "

小智 6

当您将配置指令放在.htaccess文件中,并且没有获得所需的效果时,可能会出现许多问题.

最常见的问题是,httpd.conf文件中的AllowOverride 指令未设置为使您的配置指令得到遵守.确保您没有对相关文件范围有效的AllowOverride无效.对此的一个很好的测试是将垃圾放入.htaccess文件并重新加载页面.如果未生成服务器错误,则几乎肯定会使AllowOverride无效.

另一方面,如果在尝试访问文档时出现服务器错误,请检查httpd错误日志.它可能会告诉您.htaccess文件中使用的指令是不允许的.

[星期五9月17日18:43:16 2010] [提醒] [客户端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


小智 5

在我的托管上我需要添加第一行:RewriteBase /直到那时我也得到内部服务器错误.