Autor | Zpráva | ||
---|---|---|---|
Václav Troják Profil |
#1 · Zasláno: 15. 5. 2012, 21:52:45
Zdravím,
mám problém se špatně zaindexovanými a odkazovanými stránkami, kde jsou v adrese dvě lomítka za sebou např. www.neco.cz/adresar//stranka.html ,
z čehož pramení další a další špatně indexované stránky i odkazy na ně (vzhledem k relativním odkazům z podadresářů a podstránek má adresa i 7 lomítek za sebou) Týká se to jednoho adresáře. Chybný odkaz se dvěma lomítky se na webu nikde nevyskytuje, stránky a sitemap jsem prohledal asi 100x ale google mi je stále vypisuje dál a dál se 404 Stačilo by 'adresar//' presmerovat na 'adresar/', a melo by být po problému(snad) Zkusil jsem podle návodu přesměrování v .htaccess: RewriteEngine On Options +FollowSymlinks RewriteCond %{HTTP_HOST} ^www.neco.cz/adresar// RewriteRule (.*) http://www.neco.cz/adresar/$1 [R=301,QSA,L] ale to mi nefunguje, zřejmě to nebude správně. Mohl byste někdo poradit? |
||
Kajman Profil |
#2 · Zasláno: 16. 5. 2012, 08:30:24
Zkuste něco jako
RewriteBase / RewriteCond %{REQUEST_METHOD} !=POST RewriteRule ^(.*[^/])?//+([^/].*)?$ $1/$2 [R=302,L,NE] Až si budete jistý, že to funguje přesně, můžete si dát 301. |
||
Václav Troják Profil |
Zdravím a díky,
bohužel to nepomáhá. Pokud je chybný odkaz ve tvaru www.neco.cz/adresar //adresar/stranka.html
zůstava tak i nadále a na www.neco.cz/adresar /adresar/stranka.html
se nezmění Mimochodem používám toto přesměrování www na bez www RewriteEngine On RewriteCond %{HTTP_HOST} ^www.neco.cz RewriteRule (.*) http://neco.cz/$1 [R=301,QSA,L] a zajímavé je, že pokud zapíši chybný odkaz ve formátu: http://www.neco.cz/adresar //adresar/stranka.html
tak toto přesměrování ta dvě lomítka odstraní a výsledek je http://neco.cz/adresar /adresar/stranka.html
což nechápu, protože by to mělo vypsat vše co je za ' www.neco.cz ', včetně těch dvou lomítek
Ještě jen technická: Vámi navrhované řešení jsem umístil do .htaccess v rootu před výše zmíněné Rewrite |
||
Kajman Profil |
#4 · Zasláno: 17. 5. 2012, 00:12:40
Václav Troják:
> Pokud je chybný odkaz ve tvaru > w>ww.neco.cz/adresar//adresar/stranka.html > zůstava tak i nadále a na > w>ww.neco.cz/adresar/adresar/stranka.html Což odpovídá požadavku v první příspěvku. Chtěl jste oddělat duplicitní lomítka. Ty adresy pak zpracováváte v nějakém php skriptu nebo to máte opravdové html soubory v adresářích? V php by se opakující adresář dal detekovat jednoduše - oprava adresy přesměrováním by byla lepší tam. „a zajímavé je,... což nechápu“ Prostě dojde postupně ke dvěma přesměrováním. A dejte sem odkaz na stránky, třeba tam někdo najde zdroj chybných adres - ten je totiž vhodné opravit nejdříve. |
||
Davex Profil |
Kajman:
„Ty adresy pak zpracováváte v nějakém php skriptu nebo to máte opravdové html soubory v adresářích?“ Viděl jsem web, co má Václav Troják v profilu, a podle všeho jsou tam statické html soubory. Na Googlu jsem si nevšiml stránek zaindexovaných s vícečetným lomítkem v adrese a není mi jasná příčina jejich vzniku. Na statických stránkách jsou použité relativní adresy v odkazech <a href="../adresar/soubor.html"> , takže ze stránky na adrese s dvojitým lomítkem může vzniknout adresa se zdvojeným adresářem.
http://www.example.com/adresar//stranka.html -> odkaz ../slozka/list.html -> http://www.example.com/adresar/slozka/list.html Václav Troják: Mělo by to být vyřešeno přesměrováním výše [#2] a špatné adresy by měly samy zaniknout. |
||
Václav Troják Profil |
Kajman:
„Což odpovídá požadavku v první příspěvku. Chtěl jste oddělat duplicitní lomítka.“ Ano to jsem chtěl, aby to co přijde jako požadavek '.../adresar//stranka.html' bylo přesměrováno na '.../adresar/stranka.html' Asi jsem to špatně popsal, ale po doplnění Vašeho příkladu do .htaccess se nic neměnilo a obě lomítka zůstala. „Ty adresy pak zpracováváte v nějakém php skriptu nebo to máte opravdové html soubory v adresářích?“ Ano jsou to opravdové html soubory v adresářích a žádný php script nepoužívám :-( Na stránkách jsem prošel a hledal chybný odkaz několikrát, ale nenašel. Vím, že nějaký špatný odkaz právě se dvěma lomítky se začal 'generovat' v jednom konkrétním adresáři. Hledal jsem i v odkazech směřující na stránky, zda některý někde není špatně, ale nic. Jde mi o to, že pokud někdo přes ten špatný odkaz přijde stránka se zobrazí, ale je rozsypaná viz http://acesport.cz/en/ace_products/cycling/cycling.htm ale za adresář 'ace_products/' si připište ještě to lomítko navíc (nechci tu nechávat právě můj problém jako zdroj špatného odkazu) „Prostě dojde postupně ke dvěma přesměrováním.“ No právě že to je to divné: Teď momentálně je v .htaccess jen moje přesměrování *s www na *bez www Pokud se do adresního řádku s chybným odkazem, který obsahuje ta dvě lomítka ('ace_products//') vloží na začátek 'www.', tak jen toto samotné přesměrování způsobí to, že jednak odstraní z adresy www. což má udělat, ale odstraní i ta dvojitá lomítka. Což znamená kdyby ten špatný odkaz byl ve formátu s www., tak by se tímto jedním přesměrováním moje patálie '//' záhadně řešila, a to je pro mne právě tou záhadou. Co způsobuje to, že zbytek adresy za http://neco.cz/ $1 se změní ?
Pokud chci opravdu takového 'efektu' docílit jednoduchým přesměrováním ze // na / (jak jsem uvedl v [#1] ), tak mi to ne a ne a nejde. Váš příklad jsem odzkoušel, ale // za / mi také nenahradil. Nejsem v tomto vůbec zběhlý, ale ne a ne a nedá mi to pokoj. Díky za trpělivost Davex: „Viděl jsem web, co má Václav Troják v profilu, a podle všeho jsou tam statické html soubory. Na Googlu jsem si nevšiml stránek zaindexovaných s vícečetným lomítkem v adrese a není mi jasná příčina jejich vzniku.“ Google mi neustále vypisoval právě chybné adresy s // až ////////// za adresářem 'ace_products' s kódem 404, tak jsem začal pátrat kde se to bere, ale nedopátral. Jediné co se mi zatím povedlo, bylo vymazat je jako opravené, ale Google začal vypisovat znovu. V robots jsem tedy zkusil zakázat indexování 'ace_products//' a snažím ty chybné adresy s dvojitým lomítkem přesměrovat, nic jiného už mě nenapadá. Bohužel ani výše zmíněný příklad[#2] mi nefunguje. Ještě jen ukázka toho, že to google někde bere |
||
Kajman Profil |
#7 · Zasláno: 17. 5. 2012, 09:45:27
Václav Troják:
Omlouvám se, špatně jsem třetí příspěvek přečetl. Podle RewriteLogu to vypadá, že v RewriteRule už má apache pro testování to lomítko jen jedno, proto to takhle nefungovalo. Proměnná REQUEST_URI obsahuje původní lomítka, tak je možné testovat ji... RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} ^(.*[^/])?//+([^/].*)?$ RewriteCond %{REQUEST_METHOD} !=POST RewriteRule / %1/%2 [R=302,L,NE] Jinak na vypátrání zdroje chyb by se dalo na nějaký čas použít místo toho pravidlo RewriteCond %{REQUEST_URI} ^(.*[^/])?//+([^/].*)?$ RewriteCond %{REQUEST_METHOD} !=POST RewriteRule / neexistujiciadresa [L] Health -> Crawl Errors -> Not found v detailu každé chybné adresy seznam adres odkazujících na verzi s více lomítky. |
||
Václav Troják Profil |
Mnohokrát děkuji Kajman,
Váš příklad [#7] zabral, a dělá přesně to co jsem potřeboval. Na nějakou dobu zkusím i pátrání kde se to vlastně vzalo. Ještě jednou děkuji P.S. Jen ještě upřesním > google webmaster tools, pak bude v > Health -> Crawl Errors -> Not found > v detailu každé chybné adresy seznam adres odkazujících na verzi s více lomítky. Google už mi tam ty adresy nějakou dobu vypisuje : Všechny vícelomítkové odkazy jsou dále a dále odkazovány z již těch vícelomítkových. Na dvoulomítkový odkazuje třílomítkový atd. Když se však dostanu jakoby na ty první adresy, které by to měly způsobovat, tak u nich v detailu není žádná adresa, která na ni odkazuje. :-( Proto jsem vzdal po několika měsících pátrání, a chci to vyřešit právě oním přesměrováním |
||
Časová prodleva: 12 let
|
0