Autor Zpráva
Mufna
Profil
Zdravím Vás. Vím že to tady řešilo tisíckrát, ale mě to nefunguje. Mám to v kombinaci s dalšími dvěma pravidly, která přesměrovávají všechna URL (resp. URI) na index.php. Prosím mrkněte se na to někdo a řekněte mi kde dělám chybu

Celý můj .htaccess vypadá takto
RewriteEngine on

RewriteCond %{HTTP_HOST} ^www\.
RewriteRule ^.*$ http://domena.cz/$0  [R=301,NE]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ index.php [L]
l564
Profil
a podporuje hosting RewriteEngine ?
Mufna
Profil
l564
ano, samozřejmě ... samotné přepisování na index.php funguje naprosto bez problémů, ale jak jsem k tomu přidal to první pravidlo s přepisem domény, tak mám problémy

EDIT: na hostingu je celý web v adresáři "www", tak jestli nedělá problém tohle - takže cesta k index.php od rootu je: /www/index.php
Mufna
Profil
Tak mi právě z hostingu poradili (pro první přepisovací pravidlo s doménou) toto:

RewriteCond %{HTTP_HOST} ^www\.domena\.cz [NC]
RewriteRule (.*) http://domena.cz/$1 [R=301,L]


a funguje to. Takže vše vyřešeno. Jen by mě docela zajímalo, proč nefunguje ten zápis který jsem tam měl původně
Davex
Profil
Mufna:
U přesměrování chyběl příznak [L], a proto se provádění pravidel neukončilo a požadované URL se přepsalo na skript index.php.
Mufna
Profil
Davex

Díky za vysvětlení. Já tam to [L] původně právě nedal schválně, protože jsem (jak jsem právě zjistil) špatně pochopil, jak je to ukončení přepisování myšleno.

Jestli můžu, tak bych se ještě zeptal na jednu věc (všiml jsem si toho právě nyní). Doména mi funguje OK, ale klidně můžu třeba zadat do adresního řádku např.

erotoman.domena.cz/nejaka.existujici-stranka-na-te-domene/

a klidně mi to tu stránku zobrazí. Přitom nemám nikde žádnou subdoménu "erotoman" vytvořenou a ani nechci, aby se to takto mohlo zobrazovat ... prostě chci, aby se vše přesměrovalo pouze na tvar

http://domena.cz/stranka-xy/

Můžete mi ještě poradit, jak bych to mohl ošetřit ? Předem díky za odpověď .
Davex
Profil
Pokud funguje libovolná subdoména, tak je na webserveru nastavený obecný subdoménový alias a v DNS pro subdomény žolíkový záznam. Jelikož nemám rád žolíkové DNS záznamy, tak doporučuji mít v DNS pouze záznamy, které fungovat mají a žolíkový záznam (např. *.example.com CNAME example.com) celý odstranit.

Jinak, kdyby se měly přesměrovat všechny subdomény, stačí otočit podmínku.
RewriteCond %{HTTP_HOST} !=domena.cz
RewriteRule ^.*$ http://domena.cz/$0  [R=301,NE,L]
Mufna
Profil
Davex

moc díky za vysvětlení ... zkusím to najít někde v administraci hostingu a odstranit (přenastavit) to ... udělat to přes .htaccess by asi byla blbost, protože by se sice všechno přesměrovalo, ale "mělo by se za to", že se přesměrovává třeba ze subdomény erotoman.domena.cz, takže by se asi i očekával patřičný obsah (který samozřejmě na té doméně není).

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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