我几乎没有使用过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]
答案 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