Autor | Zpráva | ||
---|---|---|---|
Daze Profil |
#1 · Zasláno: 19. 10. 2006, 23:44:58
Potřeboval bych po změně domény udělat následující věc: všechny požadavky přesměrovat na novou doménu, ale s výjimkou požadavků na index.htm. Nejlepší řešení je jednoznačně negativní RewriteCond. Tak jsem myslel, že prostě dám do .htaccessu následující:
RewriteCond %{HTTP_HOST} !^www\.davidzbiral\.webzdarma\.cz/ a že to přesměruje všechny požadavky kromě požadavku na index. Jenže mi to nefunguje - přesměrovává to všechno, včetně indexu. Neporadíte někdo, jak na to nebo kde mám chybu? |
||
Kajman_ Profil * |
#2 · Zasláno: 20. 10. 2006, 08:45:38
V http_host je název serveru, žádná cesta.
RewriteEngine On RewriteRule ^index.htm$ - [S] RewriteRule (.*) http://www.david-zbiral.cz/$1 [R=301,L] Výjimky je lepší řešit tak, že pokud to něčemu vyhovuje, tak se to nechá být (ta pomlčka) a flagem S se řekne, kolik dalších RewriteRule se má přeskočit, pokud to souhlasilo. |
||
Daze Profil |
#3 · Zasláno: 20. 10. 2006, 22:13:08 · Upravil/a: Daze
Přesně jsem to zkopíroval, ale pořád to přesměrovává i index. Veškerý obsah .htaccess byl následující:
Přesměrovávalo to všechno, i index.htm (samozřejmě že jsem kontroloval i případnou chybu v napsání do adresního řádku prohlížeče). Pak jsem to zkusil i po svém, přes negativní podmínku, ale s tou opravou, co jsi o ní psal (jen název souboru, ne cesta):
Pořád to samé - přesměrovává to všechno. Ale díky za radu, co se vlastně do té RewriteCond píše. Máte někdo nějaký nápad, jak na to, nebo doplnění toho, co tu psal Kajman_? |
||
Kajman_ Profil * |
#4 · Zasláno: 20. 10. 2006, 22:23:26
A máte tam index.htm nebo index.html nebo index.php?
|
||
Kajman_ Profil * |
#5 · Zasláno: 20. 10. 2006, 22:47:10
A ještě jedna věc... některé prohlížeče si 301 pamatují a pak rovnou jdou na novou stránku. Takže se občas stává, že se to přesměruje i když to neudělá server. Na ladění je lepší použít 302 a až po vyladění dát 301.
RewriteEngine On RewriteBase / RewriteRule ^((default|index)\.(html?|php))?$ - [S] RewriteRule (.*) http://www.david-zbiral.cz/$1 [R=302,L] |
||
Daze Profil |
#6 · Zasláno: 20. 10. 2006, 23:21:12
Mám tam opravdu index.htm. Uvažoval jsem i, že jestli server nejdřív hledá index.php, tak třeba dojde k přesměrování ještě dřív, než se server podívá po index.htm, tak jsem radši zadal do adresního řádku celou adresu včetně "/index.htm".
Právě jsem taky vyzkoušel Mozillu, abych vyzkoušel možnost, že je to tím, že si to IE pamatuje. Přesměrovává to taky. Pro úplnost: o tuhle věc se snažím na webzdarma. Děkuji vám za rady; díky nim jsem líp pochopil, jak se to zapisuje, a myslím, že se budou hodit i dalším. |
||
Kajman_ Profil * |
#7 · Zasláno: 21. 10. 2006, 09:34:21
To je divné. Zkuste ještě nahradit S za L. Nebo tam přidat flag NC...
RewriteRule ^((default|index)\.(html?|php))?$ - [L,NC] |
||
Daze Profil |
#8 · Zasláno: 21. 10. 2006, 10:01:52
To je ono! Tohle funguje bez problémů přesně tak, jak jsem chtěl:
Díky! |
||
Kajman_ Profil * |
#9 · Zasláno: 21. 10. 2006, 10:05:23
Možná tam byly problémy s velikostí písmen souboru. Možná to ve skutečnosti nebylo malýma písmenkama a vyřešil to ten flag NC, který jejich velikost ignoruje.
|
||
Daze Profil |
#10 · Zasláno: 21. 10. 2006, 10:06:27
Bylo to malými. Aspoň teda na disku to mám všechno malé, tak doufám, že to server nemění.
|
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0