Перенаправление htaccess на https исключает один URL - PullRequest
0 голосов
/ 08 октября 2018

Я знаю его дубликат, и в Google есть много ответов, но у меня пока ничего не работает.
Я не силен или даже не в среднем с Apache, но я хотел бы исключить один URL, который начинаетсяс /test/ из перенаправления HTTPS.

//redirect not working
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteCond %{SERVER_PORT} 80 
RewriteCond %{REQUEST_URI} !^\/(/test/)
RewriteRule ^(.*)$ https://example.com/$1 [R,L]

RewriteCond %{HTTP:X-Forwarded-Proto} https
RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteCond %{SERVER_PORT} 80 
RewriteCond %{REQUEST_URI} !^\/(/test/)
RewriteRule ^(.*)$ https://example.com/$1 [R,L]

//infinity loop
RewriteCond %{HTTP:X-Forwarded-SSL} !on
RewriteCond %{REQUEST_URI} ^\/(test)
RewriteRule (.*) https://%{HTTP_HOST}/$1 [L,R=301]

RewriteCond %{HTTP:X-Forwarded-SSL} =on
RewriteCond %{REQUEST_URI} !^\/test)
RewriteRule (.*) http://%{HTTP_HOST}/$1 [L,R=301]

//thats my first HTTPS redirect, tried to add RewriteCond to exclude test, but nothing works
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteCond %{SERVER_PORT} 80 
RewriteCond %{REQUEST_URI} !^/test/ [NC] 
RewriteRule ^(.*)$ https://example.com/$1 [R,L]

Буду признателен за помощь.

1 Ответ

0 голосов
/ 09 октября 2018

Сам нашел ответ

    # force https:// for all except some selected URLs    
    RewriteCond %{HTTPS} off
    RewriteCond %{THE_REQUEST} !/test/ [NC]
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

    # force http:// for selected URLs
    RewriteCond %{HTTPS} on
    RewriteCond %{THE_REQUEST} /test/ [NC]
    RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...