尝试删除.htaccess中的尾部反斜杠时出现500服务器错误

时间:2014-01-13 15:54:55

标签: apache .htaccess mod-rewrite

我几乎没有使用过htaccess,所以也许很明显我做错了什么,但我发现这行代码据说删除了反斜杠:

RewriteRule ^(.*)/$ $1 [R=301]

只是,因为我添加了它,我总是得到500内部服务器错误。实际上任何rewriteRule都会导致此错误。下面我将把我的.htaccess文件的全部内容(它只有3行)。如果有人能看到可能导致此错误的原因,我将非常感谢知道。我正在使用Apache 2.4.4服务器并作为localhost工作。感谢。

RemoveHandler .html .htm
AddType application/x-httpd-php .php .htm .html
RewriteRule ^(.*)/$ $1 [R=301]

2 个答案:

答案 0 :(得分:1)

这是由于mod_dir添加了斜杠的目录:

尝试此规则以狂热500:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{THE_REQUEST} \s(.+?)/+[?\s]
RewriteRule ^ /%1 [R=301,L]

在其他浏览器中测试以避免301缓存。

答案 1 :(得分:1)

听起来好像没有加载mod_rewrite。您需要编辑httpd.conf(或者可能是名为apache.conf)并确保该行未被注释:

LoadModule rewrite_module modules/mod_rewrite.so

另请参阅:.htaccess: Invalid command 'RewriteEngine', perhaps misspelled or defined by a module not included in the server configuration