DirectorySlash off
RewriteCond %{DOCUMENT_ROOT}/$1/index.html -f
RewriteRule ^(.+)$ /$1/index.html [L]
DirectorySlash off
http://
на https://
RewriteCond %{HTTP_HOST} ^www\.(.*)$ RewriteRule ^(.*)$ http://%1/$1 [L,R=301]
if ($request ~ "^GET ([^?]*/)index\.(?:php|html)(.*)") {
return 301 $1$2;
}
(?!/administrator)
if ($request ~ "^GET ([^?]*/)index\.(?:php|html)") {
return 301 $1;
}
if (!-d $request_filename){
rewrite ^/(.*)/$ /$1 redirect;
}
set $root_path /sites/example.com;
root $root_path;
!-d
стоит раньше чем устанавливается значение $root_path и root.server {
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
server_name example.com www.example.com;
set $root_path /sites/example.com;
root $root_path;
access_log /var/log/nginx/example.access.log main;
ssl_certificate /etc/nginx/ssl/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/privkey.pem;
if ($host ~* www\.(.*)) {
set $host_without_www $1;
rewrite ^(.*)$ http://$host_without_www$1 permanent;
}
if ($request_uri ~ "^(.*)index\.(?:php|html)") {
return 301 $1;
}
if (!-d $request_filename){
rewrite ^/(.*)/$ /$1 redirect;
}
gzip on;
gzip_disable "msie6";
gzip_min_length 1000;
gzip_vary on;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;
location / {
index index.php index.html index.htm;
try_files $uri $uri/ /index.php?$args;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $root_path$fastcgi_script_name;
include fastcgi_params;
}
server { }
!-f
срабатывает если запрашиваемый адрес не файл и /administrator/ подходит под это условие, так как является существующим каталогом.!-d
.DirectorySlash off
RewriteEngine On
RewriteRule ^(|.+/)index\.html$ https://site.ru/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ https://site.ru/$1 [R=301,L]
RewriteCond %{HTTP:X-Forwarded-Protocol} !=https [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^(.*)$ https://site.ru/$1 [R=301,L]
301 Перемещено навсегда http://сайт.ру/папка/ 302 Редирект https://сайт.ру/папка/
http://site.ru/catalog.php?id=1 -> http://site.ru/id=1
http://site.ru/catalog.php?id=27 -> http://site.ru/ciatim-221
http://site.ru/catalog.php?id=50 -> http://site.ru/page1
http://site.ru/catalog.php?id=72 -> http://site.ru/page2
RewriteCond %{QUERY_STRING} (^|&)id=(\d+)($|&)
RewriteCond "%2 \
1 => /id=1 \
27 => /ciatim-221 \
50 => /page1 \
72 => /page2 \
" "^(\S+) .*? \1\s*=>\s*/(\S+)"
RewriteRule ^catalog\.php$ http://site.ru/%2? [L,R=301]
RewriteCond %{QUERY_STRING} (^|&)id=1($|&)
RewriteRule ^catalog\.php$ http://site.ru/id=1? [L,R=301]
RewriteCond %{QUERY_STRING} (^|&)id=27($|&)
RewriteRule ^catalog\.php$ http://site.ru/ciatim-221? [L,R=301]
DirectoryIndex index.php
(?!.*</body>)
RewriteCond %{HTTP_HOST} ^domain\.com$
RewriteRule ^link http://subdomain.domain.com/ [P]