Autor | Zpráva | ||
---|---|---|---|
helpik.JPW Profil |
#1 · Zasláno: 18. 3. 2014, 18:36:59
Dobrý večer,
má prosba je o soubrou .htaccess, hromadném přesměrování a regulárních výrazech. Ani v jednom nejsem profesionál. Nicméně potřebuji všechny galerie končící "tmpl=component&Itemid=0" přesměrovat na tutéž adresu zkrácenou o právě tento konec "tmpl=component&Itemid=0". V původní verzi totiž server hlásí 500 a v té zkrácené je to ok (200). Ideální by bylo regulárním výrazem, jelikož těch galerií není málo a ručně psát něco ve tvaru níže by bylo na měsíc. RewriteCond %{HTTP_HOST} ^www\.web\.cz$ [NC] RewriteCond %{QUERY_STRING} ^tmpl=component&Itemid=0$ [NC] RewriteRule ^component/phocagallery/22-nazev-galerie1/comment/361-nazev-galerie1$ http://www.web.cz/component/phocagallery/22-nazev-galerie1/comment/361-nazev-galerie1? [R=301,NE,NC,L] Děkuji za pomoc. |
||
Joker Profil |
#2 · Zasláno: 18. 3. 2014, 19:43:38
helpik.JPW:
„V původní verzi totiž server hlásí 500 a v té zkrácené je to ok (200).“ To dělá právě kvůli tomu .htaccessu. Kdyby tam neexistovalo nějaké špatně napsané pravidlo, fungovaly by obě verze. |
||
helpik.JPW Profil |
Joker:
> To dělá právě kvůli tomu .htaccessu. > Kdyby tam neexistovalo nějaké špatně napsané pravidlo, fungovaly by obě verze. To je možný. Ona se po redesignu o to prý starala jen sekretářka. V .htaccess je nějakých 400 řádků! A v administraci Joomla je navíc nějaká komponenta, kam jí jejich ajťák nainstaloval nějaký plugin, do kterého má dávat redirect adresy Z a DO! Z toho co jste mi napsal tedy usuzuji, že již buď v tom pluginu nebo v .htaccessu obdobné pravidlo je a proto to hází 500 (a na dalších 404)? Co navrhujete? Já bych navrhnul všechny URL adresy z URL smazat, z .htaccessu také a pak přidat nějaké skupinové redirect pravidlo s regulárním výrazem. A ostatní redirecty raději ať řeším já a ne nějaká administrativní pracovnice. Jak to vidíte Vy? |
||
Kajman Profil |
#4 · Zasláno: 19. 3. 2014, 07:29:39
Těch 400 řádků pečlivě projděte. Klasické redirecty z jedné do druhé url přesuňte do konfigurace toho pluginu a v .htaccess si nechte co nejméně pravidel - spíše obecného rázu.
|
||
helpik.JPW Profil |
#5 · Zasláno: 19. 3. 2014, 19:07:25
Kajman:
„Těch 400 řádků pečlivě projděte.“ To bude výýýtvor na dlouho :( . Ale máte pravdu v tom, že v .htaccessu nechám základ jako: - přesměrování indexů - přesměrování na www a ostatní prověřím v administraci. Ten plugin (Redirect Manager v češtině se jménuje Přesměrování) jak jsem se dočetl z dokumentace Joomla (ten plugin je v už základu Joomly) - nějak automaticky sbírá ty špatné adresy (404) a sám s nimi nějak pracuje. Nechápu jak to vyhodnocuje a zda i automaticky přesměrovává bez zásahu admina. Jestli je tu nějaký Joomlista, tak k tomu třeba něco napíše. Pozitivní v tom pluginu vidím to, že má input a tak se v něm budou snad dobře hledat adresy a lépe by se mohly i pomocí GA a GWT kontrolovat. Negativní vidím to, že tam nejspíše nepůjdou regulární výrazy. Stejně mé znalosti nejsou k nim dostačující a tady jsem se regulárního výrazu nedopátral ;) . Nicméně zkoušel jsem a toto se asi shoduje: component/phocagallery/01-nazev-galerie1/comment/([0-9]+)\-([a-zA-Z0-9-]*)\?tmpl=component&Itemid=0 zřejmě odpovídá: component/phocagallery/01-nazev-galerie1/comment/361-nazev-galerie1?tmpl=component&Itemid=0 Souhlasíte? Pokud to souhlasí, potřeboval bych dát nějak do kupy 2 body: 1) u každé galerie končící na ?tmpl=component&Itemid=0 přesměrovat na variantu bez ?tmpl=component&Itemid=0 - tedy component/phocagallery/01-nazev-galerie1/comment/361-nazev-galerie1 - to platí pro jednu galerii 2) udělat to pro všechny galerie. Prý to jde pomocí proměnných $1 , ale to opravdu nechápu. Galeriií jsou desítky. K tomu bodu č 1 by vyhovoval kód z mého úvodního postu? RewriteCond %{HTTP_HOST} ^www\.web\.cz$ [NC] RewriteCond %{QUERY_STRING} ^tmpl=component&Itemid=0$ [NC] RewriteRule ^component/phocagallery/22-nazev-galerie1/comment/361-nazev-galerie1$ http://www.web.cz/component/phocagallery/22-nazev-galerie1/comment/361-nazev-galerie1? [R=301,NE,NC,L] Pokud ano, stačilo by ho zuniverzálnit (asi podle těch proměnných?) a výsledek by byl bod 2. Opravdu se snažím lidi. |
||
Joker Profil |
#6 · Zasláno: 19. 3. 2014, 19:24:08
helpik.JPW:
„To bude výýýtvor na dlouho :( . Ale máte pravdu v tom, že v .htaccessu nechám základ“ Rada pro příště, doporučil bych pokud možno nemít víc než jedno přesměrovávací pravidlo. Pravidla mod_rewrite jsou další syntaxe na naučení, ve větším počtu pravidel se špatně orientuje, blbě se to ladí a přitom jedna chyba může způsobit nefunkčnost celého webu. Většinou stačí jedno pravidlo, které cokoliv (co není adresa existujícího souboru/adresáře) přesměruje na jeden PHP skript a řekne mu, jakou adresu návštěvník chtěl. A v tom skriptu si pak hezky v PHP můžu naprogramovat, co vlastně návštěvník dostane. |
||
Časová prodleva: 10 let
|
0