Есть вот такой конфиг:
server {
listen 80;
server_name _;
root /public_html;
index index.html;
# remove multiple slashes
if ($request_uri ~ "^[^?]*?//") {
rewrite "^" $scheme://$host$uri permanent;
}
# drop html extension
if (!-f "${request_filename}index.html") {
rewrite ^/(.*)/$ /$1 permanent;
}
if ($request_uri ~* "/index.html") {
rewrite (?i)^(.*)index\.html$ $1 permanent;
}
if ($request_uri ~* ".html") {
rewrite (?i)^(.*)/(.*)\.html $1/$2 permanent;
}
location / {
try_files $uri.html $uri $uri/ =404;
}
}
example.com/index.html => example.com
(отдаёт /public_html/index.html)
example.com/foo/index.html => example.com/foo/
(отдаёт /public_html/foo/index.html)
example.com/foo.html => example.com/foo
(отдаёт /public_html/foo.html)
Как сделать, чтобы в последнем варианте добавлялся слэш в конце урла?
example.com/foo.html => example.com/foo/
Почему-то, судя по поисковой выдаче, все ищут как его убрать.
rewrite ^([^.]*[^/])$ $1/ permanent;
Такая штука сваливает всё в redirect loop