Autor | Zpráva | ||
---|---|---|---|
pavel k. Profil * |
#1 · Zasláno: 9. 3. 2015, 08:57:47
Ahoj,
před nějakou dobou mi zdejší diskutér Davex ušil na míru pro moji doménu třetího řádu soubor .htaccess ve tvaru RewriteEngine On # podstrčení PHP, přepsat pouze na existující skript RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule ^([^.]+)$ $1.php [L] # podstrčení HTML, přepsat pouze na existující soubor RewriteCond %{REQUEST_FILENAME}.html -f RewriteRule ^([^.]+)$ $1.html [L] # 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://www.subdomain.example.com/$1 [L,R=301,NE] RewriteCond %{REQUEST_METHOD} !=POST RewriteCond %{HTTP_HOST} !^www\. RewriteCond %{HTTP_HOST} ([^.]+\.[^.]+\.[^.]+)$ RewriteRule ^(.*) http://www.%1/$1 [R=301,QSA,L,NE] Jedna z mých tehdejších žádostí byla, aby se stránky zobrazovaly s úvodním www a aby byly všechny stránky bez www přesměrovány na verzi s www. Jako na potvoru jsem si to teď rozmyslel a rád bych to měl naopak (tzn. aby se www nezobrazovalo a aby byly všechny stránky s www přesměrovány na verzi bez www), ale zbytek podmínek/příkazů/vlastností chci mít stejný jako mám teď. Rád bych tudíž požádal Davexe či někoho, kdo se v zápisu vyzná (narozdíl ode mne), zda-li by byl laskav a mohl by mi kód v souboru upravit dle představ? Díky předem :-) |
||
Kajman Profil |
#2 · Zasláno: 9. 3. 2015, 09:29:42
Pozor na to, že prohlížeče či další zpracovatelé stránek si mohou nějakou dobu kód 301 pamatovat, pokud tam uděláte přesměrování na verzi bez www, tak se prohlížeč zasekne ve smyčce a vypíše uživateli chybu (pokud v poslední době šel na verzi bez www).
Osobně bych domény už neměnil. Pokud na tom trváte, tak zrušte současné přesměrování (řádky 11-20). A třeba po týdnu nebo po dvou teprve dejte přesměrování nové. Něco jako RewriteEngine On #u domen 3.radu odstranit www RewriteCond %{REQUEST_METHOD} !=POST RewriteCond %{HTTP_HOST} ^www\.([^.]+\.[^.]+\.[^.]+)$ RewriteRule ^(.*) http://%1/$1 [R=302,L,NE] # 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|html)$ /$1 [R=302,L,NE] # podstrčení PHP, přepsat pouze na existující skript RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule ^([^.]+)$ $1.php [L] # podstrčení HTML, přepsat pouze na existující soubor RewriteCond %{REQUEST_FILENAME}.html -f RewriteRule ^([^.]+)$ $1.html [L] A po dalším týdnu nebo dvou teprve změňte 302 na 301. |
||
pavel k. Profil * |
#3 · Zasláno: 9. 3. 2015, 09:54:52 · Upravil/a: pavel k.
Kajman:
Nevím, jestli si dobře rozumíme. „... vypíše uživateli chybu (pokud v poslední době šel na verzi bez www)“ I kdyby šel uživatel v poslední době na verzi bez www, tak ta ho přeci přesměruje na verzi s www (takže de facto verze s www nyní neexistuje, je to tak?) „Osobně bych domény už neměnil.“ Nemám v plánu změnu domény. Z domény třetího řádu chci jen vyhodit přebytečné www, takže místo www.subdomain.example.com by bylo subdomain.example.com (tzn. doména třetího řádu by byla i nadále zachována).
Původně jsem si myslel, že se jen v řádku č.15 smaže "www.", případně se to samé udělá ještě na řádcích 18 a 20... Kajman P.S. řádky 11-20 jsem si myslel, že mažou příponu (tzn. .php) z URL... Ale jak říkám, nerozumím tomu a tak mi nezbyde než vyzkoušet vaše řešení... |
||
Kajman Profil |
#4 · Zasláno: 9. 3. 2015, 10:23:51
pavel k.:
„I kdyby šel uživatel v poslední době na verzi bez www, tak ta ho přeci přesměruje na verzi s www“ A na www mu nachystáte přesměrování na verzi bez www. Takže tu je opět požadavek na verzi bez www, kde je zapamatováno přesměrování na verzi s www. Prohlížeč bude skákat stále mezi dvěma přesměrování, až mu dojte trpělivost a uživateli vypíše chybu způsobenou smyčkou přesměrování. „Nemám v plánu změnu domény.“ Máte. w>ww.subdomain.example.com a subdomain.example.com jsou dvě různé domény. |
||
pavel k. Profil * |
#5 · Zasláno: 9. 3. 2015, 11:07:45
Kajman:
Rozumím a rozumím. Díky ještě jednou. Smažu nynější řádky 11-20, za měsíc vložím vaší verzi .htaccess a za další měsíc změním 302 na 301. Kdyby to nefungovalo dle představ, dovolím si znovu napsat. |
||
Časová prodleva: 9 let
|
0