2011-09-26 3 views
1

У меня есть страница выхода, которая информирует пользователей о том, что они покидают мой сайт. Как я могу захватить предполагаемый URL-адрес со ссылочной страницы и отправить его пользователю после того, как они подтвердили на странице выхода, что они знают, что они покидают мой сайт и хотят продолжить свое назначение? Моя текущая настройка работает с абсолютной ссылкой, но не с относительным путем.capt url in href tag

это работает:

href="http://acme.com/company/brand/leaving/?url=http://www.about.info/choices/ 

это не:

href="../COMPANY/BRAND/leaving/?url=http://www.about.info/choices/" 

продолжени кнопка запускает следующую функцию:

function gbye(){ 
    var url = window.location.toString(); 
    var url_arr= url.split("?url="); 

if(url_arr.length>1) 
{ 

    try 
    { 
     window.location = url_arr[1]; 

    } 
    catch (e) 
    { 
    } 
} 

    return false; 
} 

может кто-нибудь объяснить, почему HREF с относительной путь не работает (возвращает список каталогов) и как я могу сделать относительный путь работы?

+0

Вы используете капители для относительного URL-адреса и нормального символа для абсолютного URL-адреса. – Gerben

+0

oops, это опечатка. Я скрыл фактические имена каталогов для обеспечения конфиденциальности. – kjarsenal

ответ

2

Большинство серверов работают в среде Linux, где файловая система чувствительна к регистру, то есть имена файлов в разных случаях обрабатываются разными.

Если первая ссылка работала правильно, используйте ../company/brand/leaving/?url=.... Я рекомендую использовать / (абсолютный корень) вместо ../, потому что вам не придется редактировать ваши файлы при перемещении файлов в другой каталог при использовании /.

+0

Аргумент Аргуса для переписывания URL-адресов - если сайт перемещается, то абсолютный URL-адрес ОПРЕДЕЛЕННО должен быть изменен, в то время как относительный URL-адрес будет изменяться только в том случае, если параллельный движок перемещается/переименовывается. –

+0

@MarcB Рассмотрите 'http: // host.name/sub/dir/file.htm' файл, связанный с' ../ dir/resource'. Файл перемещается в 'http: // host.name/new.htm'. Теперь предположим, что указатель будет '../../ dir/resource'. В первом месте ссылка ссылается на 'http: // host.name/dir/resource'. В новом месте файл указывает на 'http: // host.name/dir/resource'. Эти два URL-адреса совершенно разные. Если вместо '../' используется '/', эта проблема никогда не произойдет. –

+0

И если вы измените/sub на/newsub, тогда все ссылки должны быть переписаны в любом случае. Изменение ссылок по отношению к абслюту не приводит к магическому исправлению проблемы. В любом случае, файлы должны быть обновлены. Предложить switchinh для абсолютного быть панацеей просто откровенно ложным. –