Autor Zpráva
Marko_13
Profil
Ahoj!

V htaccess mám tieto nastavenia pre "pekné url adresy"

RewriteEngine On
RewriteBase /
 
RewriteCond %{REQUEST_FILENAME} -f [NC,OR]
RewriteCond %{REQUEST_FILENAME} -d [NC]
RewriteRule .* - [L]
RewriteRule ^([\w-]+)$ /$1.php [L,QSA]  
. Príklad http://www.stranka.sk/nieco.php môžem zadať ako http://www.stranka.sk/nieco a stránka sa načíta správne čo je super to bol môj hlavný zámer jediný problém je ak zadám adresu http://www.stranka.sk/nieco/ vtedy sa mi zobrazí 404 a ešte k tomu bez vykreslenia css čo si absolútne neviem vysvetliť. Iné zlé adresy ako http://www.stranka.sk/dkfjld sa zobrazí správna 404 (s vykreslením css)
Viete mi pomôcť resp. poradiť kde by mohol byť problém?

Ďakujem.
pharaon.jh
Profil
zkus tam dát toto, měl jsem to taky na stránkách, ale nefungovalo mi to, nevím proč
RewriteCond %{REQUEST_URI} !.[[:alnum:]]+$
RewriteRule ^(.+[^/])$ /$1/ [R=301]
DJ Miky
Profil
V regulárním výrazu povoluješ v adrese ze speciálních znaků pouze pomlčku, ale nikoliv lomítko: [\w-]
Proto takové pravidlo nezachytí adresu s lomítkem a adresa vrátí 404.
Dalo by se to vyřešit např. výrazem ^([\w-]+)/?$ (volitelné lomítko na konci), ale pozor na to, že si tím vytvoříš duplicitní adresy pro jednu stránku.

Nefunkční styly budou pravděpodobně způsobeny relativními adresami stylopisů, je potřeba používat absolutní, např. "/styl.css" nebo rovnou "http://www.stranka.sk/styl.css".

Mimochodem, podmínky pro neexistenci cílové adresy se dají vykřičníkem otočit a pravidla zredukovat ze dvou na jedno, viz např. Řešení některých častějších problémů (FAQ) » Univerzální obecné pravidlo.
Marko_13
Profil
Pharaon.jh skúšal som vložiť kód ale nešlo to.

DJ Miky Ďakujem nakoniec som si vložil absolútne odkazy a 404 sa zobrazuje správne čo v podstate rieši môj problém tie duplicitné odkazy nebudem riskovať.

Ešte raz dik za rýchle odpovede.


pharaon.jh skúšal som, ale nefungovalo

DJ Miky zmenil som relatívne odkazy na absolútne a 404 funguje správne ... duplicitné odkazy radšej nebudem riskovať

Ďakujem za rýchle reakcie a pomoc

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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