Autor Zpráva
Rob
Profil
Zdravím, na domény třetího řádu mi doporčili nahrát do rootu takovýhle .htaccess:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} subdomena.xxx.xx
RewriteCond %{REQUEST_URI} !slozka1/
RewriteRule ^(.*)$ slozka1/$1 [L]

Není to úplně to ideální, ale pro můj případ to bylo nejlepší.

Teď to tedy testuju a má to jeden háček. Dělá to to, že subdomena.domena.xx je domena.xx/subdomena. To je jasné a to funguje. Ale když jsem jako adresu napsal subdomena.domena.xx/adresar, tak mě to přesměrovalo na subdomena.domena.xx/subdomena/adresar. To je poněkud nepříjemné. Nešlo by se s tím nějak vypořádat?? Myslím změnou toho zápisu. Chtěl bych použít totiž mod_rewrite i na adresy (předávání proměnné) a obávám se, že by to dělalo to samé. Bohužel mod_rewrite mi pořád ještě nějak nedocvaknul, takže se obracím s radou na ostatní.
pmasarik
Profil
Neviem či som to pochopil správne takže možno to bude hovadina, ale máš na stránke použité absolútne adresy?

To znamená že všade musia byť linky v tvare /nieco.php alebo /nieco/nieco/nieco.html
index proste musí byť len / nie ./ alebo len index.php

Snáď ti to pomôže ak nie tak nič :-)
Rob
Profil
HM, tak tohle jsem asi nepochopil, ale zkusím to vysvětlit lépe.

Když se používá mod_rewrite k odstranění dynamické adresy, tak se to dělá takhle:
www.neco.cz/clanek-15
se serveru předá jako
www.neco.cz/clanky.php?idclanku=15

no a já bych potřeboval vlastně něco podobného.
potřebuji, aby se to co se napíše jako
subdomena.neco.cz/blabla.htm
chovalo jako
www.neco.cz/subdomena/blabla.htm

ono se to tak skoro chová, ale když napíšu subdomena.neco.cz/adresar, tak se mi to přesměruje na subdomena.neco.cz/subdomena/adresar

teoreticky by to jít mělo, protože když předávám třeba to id (horní příklad), tak mě to tam taky nepřesměruje, ale nechá mi to tu adresu. No a tady mě to pak přesměruje. Já potřebuju, aby mi to nechalo subdomena.neco.cz a pak to to za lomítkem vyhodnotilo, ale ne přesměrovalo. Určitě to jít musí, ale já se v mod_rewrite nevyznám.
Rob
Profil
Teď jsem zkoušel subdomena.neco.cz/soubor.htm
to jde, takže to zlobí jenom když se děje něco s adresářem.
Kajman_
Profil *
Tuším, že se v rewrite v druhém parametru uvádí soubor a ne adresář.
Rob
Profil
Tak to teda nevím, ale já potřebuju tomu serveru říct tohle:
-------------------------------------
S subdomena.blabla.cz/adresar
PRACUJ JAKO S www . blabla.cz/subdomena/adresar

-------------------------------------
Ale on to nebere jako s.... pracuj jako s..... ale on to nějak přesměrovává.
Kajman_
Profil *
A máte tam přesně ty pravidla, co jste posílal? Bez adresy serveru?

Přiznám se, že na podstrčení adresáře (aby to vypsalo takový ten seznam od apache) jsem kdysi (když jsem mod_rewrite testoval) nepřišel. Tak jestli na to přijdete, dejte prosím vědět :-)
Rob
Profil
Kajman_
A máte tam přesně ty pravidla, co jste posílal? Bez adresy serveru?
Nerozumím. Jaká pravidla?

Přišel jsem na další zajímavou věc. A jsem z toho dost zmatený. Když směruji pouze na adresář, subdomena.neco.cz/adresar, tak to přepíše na subdomena.neco.cz/subdomena/adresar, to zůstalo. Ale když to nasměruji i se jménem indexu subdomena.neco.cz/adresar/index.htm, tak to zůstane takhle. Tak si teda nejsem nějak jist, co si o tom mám myslet.

A taky jsem si všimnul další věci. Mám nastavené chybové hlášky přes .htaccess. No a když dojde k události (např. 403) v adrese s tou subdoménou (subdomena.neco.cz/adresar_bez_indexu_na_403ku), tak mi to nehodí moji 403, ale tu defaultní serverovou. To je mi divné, protože chybové hlášky jsou nastaveny v root adresáři, takže by to fungovat mělo, ale to že to nefunguje zase naznačuje to, že se to chová jako samostatná subdoména.

Co si o tom myslíte vy?? Jsem blázen nebo se to tak má chovat??
Kajman_
Profil *
Nerozumím. Jaká pravidla?
Rewrite pravidla.

tak mi to nehodí moji 403

Asi se přepíše i chybová stránka 403. Takže ji nachystat i pro subdoménu nebo ošetřit, aby se tahle stránka nepřepisovala.
Kajman_
Profil *
zkusil bych zkontrolovat, zda je vyplněné lomítko u adresářů a dyžtak ho doplnit
RewriteEngine On
RewriteBase /
#pokud neni subdomena preskoc dve pravidla rewriterule
RewriteCond %{HTTP_HOST} !subdomena.xxx.xx
RewriteRule .* - [S=2]
#jinak delej pro subdomenu.. prvne dopln lomitko u adresare bez lomitka
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.*[^/])$ $1/ [L]
RewriteCond %{REQUEST_URI} !slozka1/
RewriteRule ^(.*)$ slozka1/$1 [L,QSA]

Nebo tak nějak, nemám chuť to zkoušet.
Kajman_
Profil *
Oprava :-)

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !subdomena.xxx.xx
RewriteRule .* - [S=2]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.*[^/])$ slozka1/$1/ [L]
RewriteCond %{REQUEST_URI} !slozka1/
RewriteRule ^(.*)$ slozka1/$1 [L,QSA]
Rob
Profil
Tak jsem to vyzkoušel. Pro jistotu nejdříve na WZ. Když se to napíše bez lomítka, tak se to chová stejně. Když se to dá s lomítkem, tak to funguje (lomítko myslím na konci). To mě před tím nenapadlo vyzkoušet, ale funguje to tak i s tím starým. Tím je problém částečně vyřešen, ale pokud by někoho ještě něco napadlo, tak budu jen rád.

Asi se přepíše i chybová stránka 403. Takže ji nachystat i pro subdoménu nebo ošetřit, aby se tahle stránka nepřepisovala.
Jak na to?? Prosím.
Rob
Profil
To s tím ošetřením bych rád věděl proto, že tam asi bude mít stránky jeden kámoš a nerad bych mu držel nůž u krku, že tam ten soubor musí mít.
Kajman_
Profil *
RewriteRule ^(404|403)\.html$ - [L]

ukončí přepisování pro soubory 403.html a 404.html
Rob
Profil
hm, to mi nějak blbnulo, ale udělal jsem to jinak:

ErrorDocument 404 http://www.................404.html
apod.
Toto téma je uzamčeno. Odpověď nelze zaslat.