Autor Zpráva
jakubk0c
Profil
Dobrý den,
mám problém s úpravou URL adresy.

v .htaccess mám tento kod:
RewriteEngine On
# www > bez www
Options +FollowSymlinks
RewriteCond %{HTTP_HOST} ^www.xx.cz$
RewriteRule (.*) http://xx.cz/$1 [R=301,QSA,L]

# xx.cz/index.php > xx.cz/index
RewriteRule ^index.php$ http://xx.cz/$1 [R=301]   

# xx.cz/index.php > xx.cz/index
RewriteCond %{REQUEST_FILENAME} !^(.*)/$
RewriteRule ^([^\.]+)$ $1.php [NC,L]   

Výsledek = xx.cz/blog
Požadovaný výsledek = xx.cz/blog/

Zkoušel jsem google i diskuze zde na portálu, ale nic mi nefungovalo a nevím proč. Za pomoc budu vděčný.
Kajman
Profil
Na řádku 11 máte podmínku, že se dělá přepis jen pro adresy nekončící lomítkem. Můžete si pod to např. přidat další pravidlo pro lomítkaté adresy.
RewriteRule ^([^\.]+)/$ $1.php [NC,L]
pak by mělo fungovat oboje.
blaaablaaa
Profil
Kajman:
Ideální by ještě bylo přesměrovat stránky bez lomítka na lomítkovou verzi:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^(.*)/$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [R=301,L,QSA]
jakubk0c
Profil
blaaablaaa:
Tak jsem to zkusil a přestaly mi fungovat styly knihovny atd.
Kajman
Profil
Pokud se na ně budete odkazovat přes kořenové adresy, mohlo by to pomoci. Pokud odkazy nelze upravit, nepoužívejte virtuální adresářovou strukturu (lomítko na konci).
blaaablaaa
Profil
jakubk0c:
Tak ještě něco jako:
RewriteCond %{REQUEST_URI} !^.*\.(jpg|css|js|gif|png)$ [NC] (whitelist pripon, za ktere nema jit lomitko)

//EDIT: Platí pokud soubory generujete nebo v té cestě fyzicky neexistují
jakubk0c
Profil
blaaablaaa:
Pomohlo upravit odkazy, ale mám problém, že kyž dám v menu odkaz na index. Přesměruje mě to na: xx.cz/http://xx.cz//
Kajman
Profil
Smažte pravidlo z řádku 8 v [#1].

Nebo ho upravte na
# přesměrování na verzi bez přípony, pokud ještě není přepsáno a není to POST požadavek
RewriteCond %{ENV:REDIRECT_STATUS} =""
RewriteCond %{REQUEST_METHOD} =GET
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.+)\.(php)$ http://%{HTTP_HOST}/$1 [L,R=302,NE]

Pro obě řešení: aby se zapomnělo předešlé špatné trvalé přesměrování (301), smažte si cache prohlížeče, nebo to otestujte v jiném prohlížeči.
jakubk0c
Profil
Super děkuji moc :-)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0