Вход

Просмотр полной версии : Как избавится от неверных относительных ссылок


gabdullin
31.03.2010, 23:42
Добрый вечер!

Одолела меня одна проблема, а именно большое количество 404-ошибок в логах сайта, вызванных неверным формированием относительных ссылок, создаваемых, вероятнее всего работой какого-либо ява-скрипта. Неверные ссылки создаются не относительно корня сайта, а относительно самой страницы. Почитав документацию, решил попробовать изменить в настройках RealURL:
emptyUrlReturnValue = "/"
на
emptyUrlReturnValue = true
тем более, что разработчик считает второй вариант более красивым, мне он тоже кажется более логически правильным.
И, о чудо, относительные ссылки стали формироваться правильно, так как число 4004-ошибок резко уменьшилось (практически на порядок), но в меню выбора языка на главной странице я стал получать ссылки вида: http://domain.ru/http://domain.com и http://domain.com/http://domain.ru
Получается, что неправильные относительные ссылки я поборол, но пришлось их вернуть, чтобы меню выбора языка работало верно.
Как бы мне убить обоих зайцев? Может кто решал похожую проблему или она где-нибудь описана? В какую сторону читать/копать?
Сайт двуязычный
http://domain.ru - русский
http://domain.com - английский
Меню языков формируется так:

lib {
quickMenu = COA
quickMenu {
wrap = <ul>|</ul>
10 = HMENU
10 {
special = list
special {
value = 1, 8, 9
}
includeNotInMenu = 1
1 = TMENU
1 {
noBlur = 1
NO {
allWrap = <li>|</li>
ATagTitle.field = description // title
}
CUR < .NO
CUR = 1
CUR {
allWrap = <li class="selected">|</li>
ATagTitle.field = description // title
doNotLinkIt = 1
}
}
}
20 = HMENU
20 {
special = language
special {
value = 0,1
normalWhenNoLanguage = 0
}
1 = TMENU
1 {
noBlur = 1
NO {
allWrap = <li>|</li>
ATagTitle.field = description // title
stdWrap {
setCurrent = Русский || English
current = 1
}
}
ACT < .NO
ACT = 1
ACT {
allWrap = |
doNotShowLink = 1
}
}
}
}
}

Valery Romanchev
01.04.2010, 01:44
в tt_news есть пример меню ext/tt_news/res/tt_news_languageMenu.php
можно использовать это меню и внести туда нужные исправления

gabdullin
07.04.2010, 18:44
После обновления RealURL до версии 1.8.0 языковое меню вообще перестало работать. Ссылка на другой язык указывает на текущую страницу.

Nobody
19.04.2010, 17:00
И, о чудо, относительные ссылки стали формироваться правильно, так как число 4004-ошибок резко уменьшилось (практически на порядок),

Простите, не верю :( Эта опция работает только тогда, когда сгенерированый урл получился пустым :)


но в меню выбора языка на главной странице я стал получать ссылки вида: http://domain.ru/http://domain.com и http://domain.com/http://domain.ru

Скорее всего, проблема где–то ещё. Для начала удалите все прочие расширения, которые делают что–то связанное с RealURL.