#php #refresh
#php #обновить
Вопрос:
Я использую .htaccess. У меня есть правило:
RewriteRule ^pg/([a-zA-Z0-9/_-] )?$ index.php?page=$1 [QSA]
На одной из моих страниц есть URL: http://domain.com/pg/page1
На этой странице есть мета-тег обновления:
<meta http-equiv='refresh' content='0;URL=pg/page2'>
Теперь, когда эта страница обновляется .. формируется новый URL-адрес:, http://domain.com/pg/pg/page2
т.Е. pg
появляется дважды.
Я уже указал базовый тег href в заголовке как:
<base href='http://domain.com'>
Почему pg/
появляется дважды и как от этого избавиться.
Спасибо.
Ответ №1:
Убедитесь, что вы начинаете путь с косой черты ( '/'
), например '/pg/page1'
Комментарии:
1. Спасибо. Это сработало. Могут ли быть какие-то другие проблемы из-за этого?
2. Только если вы позже переместите веб-сайт в подкаталог. Предшествующая косая черта сообщает браузеру (и, соответственно, веб-серверу, как только запрос сделан), что ресурс должен быть запрошен из корневого веб-каталога, а не из текущей папки. Если вы когда-либо переместите сайт в подкаталог (с точки зрения веб-интерфейса, то есть, например www.example.com/my_sub_directory/pg/page1 ) вам нужно будет указать этот подкаталог после косой черты, но перед остальной частью пути.
3. Еще одна проблема заключается в том, что у меня есть страница по адресу: smstongue.com/pg/d/help/faq и там есть ссылки <a href=’#1′>. Но при нажатии на эту ссылку я попадаю в smstongue.com/#1 и не smstongue.com/pg/d/help/faq#1 . Я использовал <базовый href=» smstongue.com «> в голове, и я думаю, что из-за этого это происходит. Пожалуйста, предложите, какие изменения необходимо внести.
4. Проблема в вашем
<base>
теге, поэтому у вас есть несколько вариантов. Вы можете удалить<base>
тег и использовать абсолютные пути, конечно, или вы можете быть немного хитрее. Я замечаю, что ваш menu.js файл содержит ссылку на jquery, хотя вы не включаете jquery на эту страницу. Без jQuery:document.onreadystatechange = function () { var f = document.getElementsByTagName('base')[0]; var g = f.parentNode; g.removeChild(f); document.onreadystatechange = null; };
С помощью jQuery:$(function(){$('base').remove();});
.5. В любом случае, однако, это связано с
base
тегом, так что это то, на исправлении чего вам нужно сосредоточиться. Вы всегда можете указать абсолютный путь в ссылке <a> .