Autor Zpráva
Cerveny
Profil
Zdravím, mám menší web (cca 300 podstránok) a potrebujem všetky url s výnimkou jednej presmerovať na https.
URL sú v takomto tvare a malo by to vyzerať nejak takto:

http://domena.com/hra/ -> https://domena.com/hra/
https://domena.com/hra/ -> https://domena.com/hra/

výnimka:

http://domena.com/nossl_hra/ -> http://domena.com/ssl_hra/
https://domena.com/nossl_hra/ -> http://domena.com/ssl_hra/

Vie niekto poradiť?
Kajman
Profil
Možná něco takového
RewriteEngine On

RewriteCond %{SERVER_PORT} !="443"
RewriteCond %{REQUEST_URI} !^nossl_hra/
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=302,L,NE]

RewriteCond %{SERVER_PORT} ="443"
RewriteRule ^(nossl_hra/.*)$ http://%{HTTP_HOST}/$1 [R=302,L,NE]

#pripadna dalsi pravidla
Cerveny
Profil
Ďakujem, použil som to a pridal pôvodné pravidlá ale stránka sa nezobrazí. Prehliadač vypíše chybu ERR_TOO_MANY_REDIRECTS.
Skúšal som posledných pár hodín niečo vymyslieť ale som v tom stratený.
Obsah htaccess:

    RewriteEngine On
 
    RewriteCond %{SERVER_PORT} !="443"
    RewriteCond %{REQUEST_URI} !^/game/nossl-game
    RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=302,L,NE]
 
    RewriteCond %{SERVER_PORT} ="443"
    RewriteRule ^(/game/nossl-game.*)$ http://%{HTTP_HOST}/$1 [R=302,L,NE]
    
    RewriteRule ^(src/|cache/|webmaster/(?!templates)|vendor/) - [F,L,NC]

    RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
    RewriteRule ^(.*) - [E=BASE:%1]

    RewriteCond %{ENV:REDIRECT_STATUS} ^$
    RewriteRule ^index\.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L]

    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule .? - [L]

    RewriteRule .? %{ENV:BASE}/index.php [L]
Kajman
Profil
Mezi řádky 4 a 5 zkuste přidat podmínku jako na řádku 15. (Aby to nepřesměrovalo ani index.php, který byl podstrčen dalšími pravidly.)

Také si nejsem jistý uvodním lomítkem na čtvrtém řádku, raději bych použil ^/?game

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: