Autor | Zpráva | ||
---|---|---|---|
xlifer Profil |
#1 · Zasláno: 29. 3. 2011, 11:38:46
Nevíte prosím někdo jak vyřesit tento problém, kdy chci z URL adresy odstraňovat připadně zadaný index.php ?
www.tld.cz/index.php = vstup špatně, který chci přesměrovat na: www.tld.cz Zkouším takové pravidlo, ale nefunguje: RewriteRule ^index.php http://www.tld.cz/ [R=301,QSA,L] RewriteRule ^(.*)$ index.php?page=$1 [L,QSA] |
||
xlifer Profil |
#2 · Zasláno: 29. 3. 2011, 11:47:35 · Upravil/a: xlifer
Kompletní htaccess je takto:
RewriteEngine On RewriteBase / RewriteRule ^index.php http://www.tld.cz/ [R=301,QSA,L] RewriteCond %{HTTP_HOST} ^tld\.cz$ [NC] RewriteRule ^(.*)$ http://www.tld.cz/$1 [R=301,L] RewriteCond %{REQUEST_FILENAME} -f [NC,OR] RewriteCond %{REQUEST_FILENAME} -d [NC] RewriteRule ^(.+) - [PT,L] #RewriteRule ^(.+[^/])$ $1/ [R=301,L] RewriteRule ^(.*)$ index.php?page=$1 [L,QSA] |
||
Davex Profil |
#3 · Zasláno: 29. 3. 2011, 21:13:37
Před první pravidlo se musí přidat podmínka proti zacyklení.
RewriteCond %{ENV:REDIRECT_STATUS} ="" |
||
xlifer Profil |
#4 · Zasláno: 31. 3. 2011, 11:56:59 · Upravil/a: xlifer
Davex:
Výborně, tohle zabralo... díky. Nevím kde se o těch direktivách ENV: dočíst více, hledal jsem, ale nikde nic pořadnýho k tomu není. Všude je k htaccessu pouze popis Rule a Cond a víc nic. |
||
Kajman_ Profil * |
#5 · Zasláno: 31. 3. 2011, 12:55:47
xlifer:
„Nevím kde se o těch direktivách ENV: dočíst více“ To není direktiva. Je to určení systémové proměnné. Stačí kliknout na ono RewriteCond a přečíst si návod. |
||
Časová prodleva: 11 měsíců
|
|||
keksik Profil * |
#6 · Zasláno: 12. 2. 2012, 16:36:48
Nějaké složité... Mě to funguje takto:
RewriteEngine on Options +FollowSymlinks RewriteCond %{HTTP_HOST} ^tld\.cz RewriteRule (.*) http://www.tld.cz/$1 [R=301,QSA,L] RewriteCond %{REQUEST_URI} ^/index.php$ [NC] RewriteRule ^(.*)$ http://www.tld.cz/ [R=301,L] Přesměrovává URL bez www + index.php na www.tld.cz Je to regulérní zápis? Díky za odpověď |
||
Časová prodleva: 3 dny
|
|||
keksik Profil * |
#7 · Zasláno: 15. 2. 2012, 20:08:43
ještě jinak - jaký je rozdíl mezi
RewriteCond %{HTTP_HOST} ^tld\.cz RewriteRule (.*) http://www.tld.cz/$1 [R=301,QSA,L] a RewriteCond %{HTTP_HOST} ^tld\.cz$ [NC] RewriteRule ^(.*)$ http://www.tld.cz/$1 [R] oba příkazy přesměrují url bez www na url s www správně... respektivě který z nich je správný? |
||
Davex Profil |
#8 · Zasláno: 15. 2. 2012, 21:23:12
keksik:
„respektivě který z nich je správný?“ Jestliže oba dělají za stejných okolností stejnou věc a přesměrují dle očekávání, tak se nedá říct, který z nich je špatně. Když by se to vzalo kolem a kolem, tak úplně správně není ani jeden. 1) nejsou univerzální - po umístění na jinou doménu se musí přepisovat jméno domény 2) v regulárních výrazech je vhodné označovat začátek a konec 3) mělo by se přesměrovávat s příznakem [NE] , kdyby náhodou někdo používal parametry s diakritikou v adrese
|
||
Časová prodleva: 11 let
|
0