如果404错误,则不添加斜杠

时间:2016-08-06 15:11:11

标签: apache .htaccess mod-rewrite

当我使用网址测试我的404时:domain.com/fff

在我的日志中,我看到:

"HEAD /fff HTTP/1.1" 301 299 "-" 
"HEAD /fff/ HTTP/1.1" 302 451 "-"
"HEAD /404 HTTP/1.1" 301 299 "-" 
"HEAD /404/ HTTP/1.1" 404 356 "-"

我的htaccess中的规则:

RewriteRule ^missing$ missing.html [END]
ErrorDocument 401 /missing
ErrorDocument 403 /missing
ErrorDocument 404 /missing
ErrorDocument 406 /missing
ErrorDocument 500 /missing
ErrorDocument 503 /missing

# I want to avoid adding slash if status is 404
RewriteCond %{REQUEST_URI}  !\.(php|html?|css|woff|ico|404|js|xml|jpg|png|gif|svg|mp3|ogg)$
RewriteCond %{ENV:REDIRECT_STATUS} !=404
RewriteRule ^(.*)([^/])$ http://%{HTTP_HOST}/$1$2/ [L,R=301] 

我尝试了%{ENV:REDIRECT_STATUS} !=404但它不起作用(请参阅上面的日志)任何想法?

1 个答案:

答案 0 :(得分:0)

问题解决了:

如果我无法找到内容,我会重定向到domain.com/404。 所以我把它添加到我的htaccess

7354 % 10

现在它正在工作:) 感谢