Autor Zpráva
Tomasekkk
Profil *
Zdravím Vás,

mám jeden specifický problém. Mám udělaný web a rád bych pro něj udělal něco jednoduchého. A teď k jádru problému.

Mám tento zápis v rootu webu (webovky jsou uloženy v adresáři www)

RewriteCond %{HTTP_HOST} ^subdomena1\.domena\.cz
RewriteRule ^sitemap\.xml$ %{DOCUMENT_ROOT}/www/sitemap-generator.php?idkategorie=1 [L,QSA]

pokud chci udělat i pro web subdomena2.domena.cz, musím tento zápis zopakovat s touto úpravou

RewriteCond %{HTTP_HOST} ^subdomena2\.domena\.cz
RewriteRule ^sitemap\.xml$ %{DOCUMENT_ROOT}/www/sitemap-generator.php?idkategorie=2 [L,QSA]

Existuje možnost jak by se dalo toto vyřešit pro všechny subdomény, které bych chtěl? Rád bych vytvořil nějaký htaccess zápis, kde bych si jen nadefinoval názvy subdomén a k nim určité ID (id kategorie), potom by se o to staralo celé htaccess, nynější rootové htaccess má cca. 1600 řádků :-( Pro každé idkategorie je cca. 9 zápisů po dvou řádcích :-(
Davex
Profil
Tomasekkk:
nynější rootové htaccess má cca. 1600 řádků :-( Pro každé idkategorie je cca. 9 zápisů po dvou řádcích
To je typický příklad nevhodného používání mod_rewrite. Jedním pravidlem předávej cestu PHP skriptu a v něm rozhoduj co zobrazovat.
Tomasekkk
Profil *
No zkouším

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ %{DOCUMENT_ROOT}/www/index.php?url=/$1 [L,QSA]

Bohužel mám např. na www.domena.cz i adresáře jako css, images atp. s tímto zápisem mi ani www.domena.cz/css a www.domena.cz/images nefunguje, to musím nastavit v PHP taktéž nebo na to existuje nějaký fígl?


Nechápu ani to, jak v PHP udělat to, aby se provádělo ono přesměrování jak jsem psal. V php si dokážu vytáhnout $_SERVER["HTTP_HOST"], ale co s tím? Mám ho přesměrovávat přes header(); nebo přes jinou funkci? Opravdu bych nerad vytvořil zase něco na 1600 řádků :-)
Davex
Profil
V tom pravidle jsou podmínky, že se soubory a adresáře přepisovat na skript nemají.

Nechápu ani to, jak v PHP udělat to, aby se provádělo ono přesměrování jak jsem psal.
Původní skript by asi šlo přepracovat, aby si potřebné údaje vytáhl z nově předaného parametru a pracoval s nimi dál.

Opravdu bych nerad vytvořil zase něco na 1600 řádků
K čemu to přesně potřebuješ? Třeba jde navrhnout jednodušší řešení.
Tomasekkk
Profil *
Jedná se opravdu jen o to, že jsem přes htaccess předával subdoménu jako subdomena.domena.cz (kazda subdomena má určité ID jako id kategorie - kategorie článků, bazaru atp.). Tzn. potom je výsledná URL např. clanky.domena.cz/podkategorie-clanku_145/ tím jsem si namapovat url index.php?stranka=clanky&idpodkategorie=$1, potom mohla byt domena clanky.domena.cz/clanek/prvni-clanek-webu_147.html ten se mapoval na stranka=clanky&idclanku=$1. U bazaru je to obdobné (funguje to stejně), jen teď nevím jak to přesně mapovat? V indexu mám case $_GET["stranka"], takže leda na začátku udělat pravidla přes preg_match a když bude pravidlo vyhovovat udělám tam natvrdo $_GET["stranka"] = "clanky"; Opravdu mne napadá mnoho možností, myslel jsem, že se to v nějakém článku na netu řešilo, ale jak jsem hledal, tak jsem hledal, nenašel jsem. Je tam vždy jen htaccess manuál.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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