[ CoyoteKG @ 11.02.2018. 12:13 ] @
Imam jedan sajt na kojem treba da mi radi samo admin sekcija i media, a svi ostali pozivi ka tom sajtu da redirektuju na tu login stranu.

Znaci recimo

www.domain.com i www.domain.com/nekilink.php da redirektuju na www.domain.com/admin.

Ali pri tom i linkovi poput www.domain.com/media/sviostalilinkoviodavde.php da se ne redirektuju.

Je l' moguce?
[ revlo @ 11.02.2018. 13:31 ] @
Najbolje da u index.php parsujes componente. Mada moze i preko htaccess, nemam sad kod sebe. Uglavnom u svaki folder na rootu, stavis index.php sa redirekcijom na root. Malo nezgrapno, ali ako hoces htaccess, onda potrazi, google je majka.
[ srbaja @ 11.02.2018. 20:00 ] @
Code:

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/admin [NC]
RewriteCond %{REQUEST_URI} !^/media [NC]
RewriteRule ^ /admin [R,L]
[ CoyoteKG @ 12.02.2018. 11:48 ] @
srbaja, na taj nacin dobijam

ERR_TOO_MANY_REDIRECTS

Prebaci me sa homepage, ili bilo koje druge stranice na /admin, ali mozda uleti u neku petlju da i /admin pokusava da redirektuje sam na sebe...

Kada sam pokusao neku fotku iz media foldera da otvorim, i tu fotku redirektuje na /admin.


recimo https://www.site.com/media/cc071054d2b2d2246b32f8b6814.JPG


Da objasnim poentu.

Kolege .netovci rade neki nov sajt u .net.
Sajt koji je sada live, bi trebalo neko vreme da ostane, da se koristi samo admin panel, i fotografije sa njega.
Odnosno, valjda iz tog admin panela ljudi dodaju nove fotke.
Kad .net app bude live, on ce koristiti taj media folder od tog php sajta, a na php sajtu sve ostale posete treba da se redirektuju na admin login stranicu. Naravno osim samog media foldera i fotografije, i admin panela.


[Ovu poruku je menjao CoyoteKG dana 12.02.2018. u 13:01 GMT+1]
[ Branimir Maksimovic @ 12.02.2018. 12:30 ] @
Jel ima kod tvog servera `AuthLocation` da stavis u htaccess? Ovo radi u mom web serveru, ne znam da li to ima taj tvoj?

Recimo kod mene radi ovo:

AuthLocation "/admin/login.php

[ srbaja @ 12.02.2018. 22:57 ] @
Da li je ono gore sve sto ima u .htaccessu ili ima i nesto od ranije?
[ Branimir Maksimovic @ 12.02.2018. 23:10 ] @
To je feature web servera koji sam uradio za firmu sa kolegom, ne znam dal ima podrzano to u apache-u. Ali to je dosta potrebno, pa verujem da se neko setio i za apache da uradi mod ;p
[ CoyoteKG @ 19.02.2018. 09:19 ] @
Branimire, bem li ga :)

srbaja, sry, nisam radio ovih dana.

ovo je CakePHP i po default ima 3 neka nivoa redirekcije.


/srv/www/vhosts/www.website.com/.htaccess
Code:
<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule ^$ app/webroot/ [L]
    RewriteRule (.*) app/webroot/$1 [L]
</IfModule>


/srv/www/vhosts/www.website.com/app/.htaccess
Code:
<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule    ^$    webroot/    [L]
    RewriteRule    (.*) webroot/$1    [L]
</IfModule>


/srv/www/vhosts/www.website.com/app/webroot/.htaccess
Code:
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>


Ja sam ovaj deo koda koji si mi napisao dodao u ovaj zadnji webroot/.htaccess

i dobio ERR_TOO_MANY_REDIRECTS.

Sad sam stavio i samo to u .htaccess i opet isti error.

Pravi link za admin stranicu je https://www.website.com/admin/administrators/login



[Ovu poruku je menjao CoyoteKG dana 19.02.2018. u 10:32 GMT+1]
[ Predrag Supurovic @ 19.02.2018. 09:45 ] @
Uključi debug rewrite log pa probaj da u njemu vidiš šta izaziva da se rewriting vrti u mrtvoj petlji.

Pogledaj https://pedja.supurovic.net/mod_rewrite-debug-logging/
[ CoyoteKG @ 19.02.2018. 12:37 ] @
Kad ukljucim rewrite log, sa jednim pozivom dobijem oko 1000 redova u tom log fajlu, koji mi nisu ni jasni. Mogu da uploadujem fajl.

Nego, korak dalje.
Upadao sam u redirection loop jer sam komentovao ova dva reda koja su inace u default cakephp .htaccess fajlu
Code:
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f  


Aklo sam dobro shvatio ovo

/srv/www/vhosts/www.website.com/app/webroot/.htaccess
Code:
<IfModule mod_rewrite.c>
    RewriteEngine On                                                # Omogućujem rewrite rulove
    RewriteCond %{REQUEST_URI} !^/admin [NC]     # Krajnji rule ne utiče na linkove koji počinju sa /admin
    RewriteCond %{REQUEST_URI} !^/media [NC]     # Krajnji rule ne utiče na linkove koji počinju sa /media
    RewriteCond %{REQUEST_FILENAME} !-d             # Krajnji rule ne utiče na linkove koji nisu direktorijumi
    RewriteCond %{REQUEST_FILENAME} !-f              # Krajnji rule ne utiče na linkove koji nisu fajlovi
    #RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]     # Ovo je originalni koji sam komentovao, valjda pravilo koje kad se pozove web link, otvara index.php
    RewriteRule ^ /admin [R,L]                                  # Pravilo koje treba da redirektuje na www.website.com/admin
</IfModule>


E sad šta se dešava.
Kad pozovem homepage www.website.com ne budem redirektovan na www.website.com/admin.
A takođe sve ono što je u media folderu se ne prikazuje, slike nisu učitane.
Pri tom, ako odem ručno na www.website.com/admin tad opet dobijem ERR_TOO_MANY_REDIRECTS

Da napomenem, možda treba :), /srv/www/vhosts/www.website.com/admin folder i ne postoji.
Valjda je to nekako programerski pomoću kontrolera, ili rutiranja definisano.
[ Predrag Supurovic @ 19.02.2018. 14:24 ] @
Probao sam kod mene ovako:

Code:


RewriteEngine On
RedirectMatch ^/$ /admin
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]



Radi delimično.

Ja bih to svakako radije rešavao u aplikaciji, u index.php.
[ srbaja @ 20.02.2018. 10:01 ] @
OK, probaj onda ovako:

(kada requestovi zavrse u /app/webroot, onda i %{REQUEST_URI} postaje npr /app/webroot/admin)

/srv/www/vhosts/www.website.com/app/webroot/.htaccess
Code:
<IfModule mod_rewrite.c>
    RewriteEngine On                                                # Omogućujem rewrite rulove

    RewriteCond %{REQUEST_URI} !^/app/webroot/admin [NC]     # Krajnji rule ne utiče na linkove koji počinju sa /app/webroot/admin
    RewriteCond %{REQUEST_URI} !^/app/webroot/media [NC]     # Krajnji rule ne utiče na linkove koji počinju sa /app/webroot/media
    RewriteRule ^ /admin [R,L]                                                     # Pravilo koje treba da redirektuje na www.website.com/admin
   
    RewriteCond %{REQUEST_FILENAME} !-d             # Krajnji rule ne utiče na linkove koji jesu direktorijumi
    RewriteCond %{REQUEST_FILENAME} !-f              # Krajnji rule ne utiče na linkove koji jesu fajlovi
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]        # pravilo koje kad se pozove web link, otvara index.php
</IfModule>


Ovo bi trebalo da radi za /admin, a za /media ce da radi samo ako je to deo izvornog sajta. Ukoliko si ti dodao media/ direktno u /srv/www/vhosts/www.website.com onda izmeni i

/srv/www/vhosts/www.website.com/.htaccess
Code:
<IfModule mod_rewrite.c>
    RewriteEngine on

    RewriteCond %{REQUEST_URI} !^/media
    RewriteRule ^$ app/webroot/ [L]

    RewriteCond %{REQUEST_URI} !^/media
    RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
[ CoyoteKG @ 20.02.2018. 12:05 ] @
Dobijem error 404
[Tue Feb 20 13:01:37 2018] [error] [client 89.216.xxx.xxx] File does not exist: /srv/www/vhosts/www.website.com/app/webroot/admin

Taj folder stvarno i ne postoji. Valjda je pomoću kontrolera, u routes.php nekako definisano šta da se desi kad se otvori taj link.
[ CoyoteKG @ 20.02.2018. 12:36 ] @
elem, pokazao sam ovom mom dotnetovcu routes.php fajl, pa je skontao kako da sredi.

Mada i dalje sam znatizeljan zasto mi sa .htaccess ne radi :)