[megoldva] Weboldal karbantartási regexp

 ( szz | 2019. március 4., hétfő - 11:28 )

Pénteken kellett volna gyorsan egy "átirányítós regexp", ami a weboldalra érkező kérések mindegyikét egy karbantartási (maintenance) oldalra irányítja, ami a webes könyvtár gyökerében volt.

Eleinte ^(.*)$ volt megadva, ami majdnem jó is volt – csakhogy a csicsás maintenance oldalon voltak képek, css-ek, betűtípusok is. Ezeket (mivel alkönyvtárban voltak) nem jól mutatta, mert illeszkedett rájuk, és a gyökérkönyvtárba irányította a kérést.

Először egy "negatív lookahead": ^/(?!css|img|js)([a-z0-9]+)$
kifejezéssel próbálkoztam, de nem vált be (már csak amiatt sem, mert a / és . hiányoztak a listáról).

Esetleg van valami bevett gyakorlat erre? Tehát: regexp, ami illeszkedik mindenre, kivéve, ha a sztring tartalmazza ezeket: /css, /img vagy /js.

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Épp keresem a css|img|js mappát engedélyező .htaccess-em, addigis: az nem működik, hogy átirányítod a root-ba érkező minden kérést egy mappába, abba a mappába raksz egy külön .htaccess-t, ami viszont enged mindent a mappán belül? Nem sűrűn piszkálom a .htaccess-t, de ez úgy rémlik működik.

Szerk.: amit én használtam, az elejére illeszkedéssel szabadon volt hagyva, hogy a css és js mappában bármi lehessen, többet is felsorolhatsz egymás alá. (Javaslat: nem ártana egy ellenőrzés még, hogy azért csak css vagy js tartalom legyen a mappákban.)

RewriteCond %{REQUEST_URI} !^/?(/css/)
RewriteCond %{REQUEST_URI} !^/?(/js/)
RewriteRule .* do.php

(A feltételek között gyakorlatilag így "&" van, és ha az összes feltétel igaz, akkor megy a rewrite rule-ra.)

Köszi!! :-) Időközben találtam egy egybefogott kifejezést is, ami megfelelő: ^(?!\/css\/|\/img\/|\/js\/)(.+)$
A tesztprogramot ide tettem: https://pastebin.com/pRA7ti86