Я пытаюсь перенаправить все запросы на:
Требование 1: протокол https, определенная подпапка и отсутствие субдомена www.
Так, например, "http://www.example.com" перенаправляетto "https://example.com/subfolder/"
Требование 2: Запросы для страниц в подпапке не должны перенаправляться в корневую подпапку.например: "http://www.example.com/subfolder/subfolder2/"redirects to" https://example.com/subfolder/subfolder2/"
Требование 3: требования 1 и 2 должны выполняться для всех запросов, кроме файла robots.txt, расположенного в корневом каталоге (поэтому следующие URL не будут перенаправлены):
Вот что у меня есть до сих пор:
RewriteEngine on
# anything not a file or a directory goes to subfolder root
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteCond %{REQUEST_URI} !^/subfolder/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ https://example.com/subfolder/$1 [R=301]
# non secure http protocol redirects to secure
RewriteCond %{SERVER_PORT} !443
RewriteRule (.*) https://example.com/subfolder [R=301]
# root redirects to subfolder root file
RewriteCond %{HTTP_HOST} ^(www.)?example.com$ [NC]
RewriteRule ^(.*)$ https://example.com/subfolder/index.php [R=301]
# www subdomain is redirected to domain
RewriteCond %{HTTP_HOST} ^www.example.com$ [NC]
RewriteRule ^(.*)$ https://example.com/$1 [R=301]
# Last check to redirect with entire trail, not sure if this ever catches a request.
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
И все же файл example.com/robots.txt перенаправляется в подпапку.