htaccess 配置错误 500

htaccess misconfiguration 500

所以基本上我创建了一个 .htaccess 文件,它删除了 .html 扩展名并将 /file.html 重定向到 /file 但是当我写 /file.html/ 它会导致 500 个内部服务器错误,如何 map/file.html/ 到我的自定义错误页面?或者简单地将其也重定向到 /file.html

代码如下:

Options -Indexes
ErrorDocument 404 /custom404.html
ErrorDocument 403 /custom404.html
ErrorDocument 500 /custom404.html


RewriteEngine on



RewriteCond %{THE_REQUEST} \.html [NC]
RewriteRule ^(.*)\.html$ / [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ .html [L]

根据您展示的示例,请您尝试以下操作(注释已在规则中添加以进行解释)。请确保在测试您的 URL 之前清除您的浏览器缓存。

Options -Indexes
ErrorDocument 404 /custom404.html
ErrorDocument 403 /custom404.html
ErrorDocument 500 /custom404.html

RewriteEngine on
##Added additional condition to make sure this runs from external request only.
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{THE_REQUEST} \s/.*\.html\s [NC]
RewriteRule ^(.*)\.html/?$ / [R=301,L,NC]

##Simply rewrite from non-existing pages to html files.
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}/\.html -f
RewriteRule ^(.*)/?$ .html [L]