Autor | Zpráva | ||
---|---|---|---|
Tomasekkk Profil * |
#1 · Zasláno: 18. 3. 2012, 19:48:14
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 |
#2 · Zasláno: 18. 3. 2012, 20:04:56
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 * |
#3 · Zasláno: 18. 3. 2012, 20:07:01 · Upravil/a: Tomasekkk
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 |
#4 · Zasláno: 18. 3. 2012, 22:17:58
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 * |
#5 · Zasláno: 19. 3. 2012, 07:00:20
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.
|
||
Časová prodleva: 11 let
|
0