Autor Zpráva
Mufna
Profil
Zdravím Vás. Po dlouhé době prosím o radu. Na jedné doméně provozuju jak www stránky, tak i e-shop. E-shop je umístěn v adresáři /shop/ a běží jakoby na subdoméně (tedy http://shop.domena.cz). Potřebuji upravit .htaccess tak, aby se sice přesměrovávalo do adresáře /shop/, pokud jde os tránky e-shopu, ale zároveň bych potřeboval odstranit z URL ten adresář /shop/. Aby to bylo jasné, tak v tuto chvíli když procházím e-shopem, tak se vytváří URL ve tvaru:

http://shop.domena.cz/shop/konkretni-stranka

a já bych potřeboval, aby se vytvořilo pouze

http://shop.domena.cz/konkretni-stranka

Zároveň ale se index.php musí hledat v adresáři /shop/, protože v rootu webu je normální www stránka (tedy ne e-shop)

Upravit potřebuji toto:

RewriteCond %{HTTP_HOST} ^(www\.)?shop.domena.cz$
RewriteCond %{REQUEST_URI} !^/shop/
RewriteRule (.*) /shop/$1 [L]
Davex
Profil
To pravidlo jen podstrkává a nepřesměrovává, takže se domnívám, že by stačilo v e-shopu opravit odkazy, aby v cestě nebyl obsažen adresář /shop.
Mufna
Profil
Davex:

Jenže já tam právě potřebuju mít ten adresář /shop/ takto nastavený. Kdybych to takto nepotřeboval a mohl nastavit jako base adresář pro e-shop jen /, tak by to bylo v pohodě. Bohužel když někde v configu e-shopu nastavím jen /, tak pak mám zas problémy s adminem e-shopu. Takže musím nechat to nastavení hlavního adresáře na /shop/, ale pak to potřebuju "umazat" z URL skrz .htaccess.
Davex
Profil
To přepisovací pravidlo je v pořádku - pro subdoménu přepisuje všechny cesty z kořene webu do podadresáře /shop/. Možná by pomohlo přepisovat přímo na skript e-shopu.

RewriteCond %{HTTP_HOST} ^(www\.)?shop.domena.cz$
RewriteCond %{REQUEST_URI} !^/shop/
RewriteRule (.*) /shop/index.php?cesta=$1 [L]

Bohužel když někde v configu e-shopu nastavím jen /, tak pak mám zas problémy s adminem e-shopu.
Pravidla mod_rewrite nejsou určena k obcházení nedostatků provozovaných skriptů. Nejdřív musí správně pracovat e-shop, a pak se mohou nasazovat přepisovací pravidla. Pokud s tím e-shop neumí spolupracovat, tak by se měl opravit on, aby mohl být bez problémů v adresáři /shop/, ale na stránkách vytvářel odkazy do kořene webu.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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