Показать сообщение отдельно
Старый 31.03.2010, 23:42   #1
gabdullin
Продвинутый
 
Регистрация: 13.05.2006
Адрес: Россия, Казань
Сообщений: 62
Отправить сообщение для gabdullin с помощью Skype™
По умолчанию Как избавится от неверных относительных ссылок

Добрый вечер!

Одолела меня одна проблема, а именно большое количество 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
				}
			}
		}
	}
}
__________________
Не ошибается тот, кто ничего не делает!

Последний раз редактировалось gabdullin; 31.03.2010 в 23:57
gabdullin вне форума   Ответить с цитированием