Как сделать 301 редирект страницы в htaccess
Статьи про сайтостроение
Для начала необходимо создать файл с названием .htaccess. Для этого создаем обычный текстовый документ — новый текстовый документ.txt и переименовываем его в .htaccess, т.е. ставим точку затем пишем htaccess, а расширение txt удаляем. Система спросит — вы действительно хотите поменять расширение, соглашаетесь.
Затем созданный файл открываем обычным текстовым редактором и копируем туда код, который описан ниже.
Основные функции 301 редиректа и зачем он нужен?
Ситуация: страница сайта была удалена или переехала на новый адрес.
Минусы ситуации: страница становится не доступной и выдает ошибку 404. Если данная страница имела топовые позиции и посещаемость, то с ее исчезновением позиции по запросу, за которой отвечала страница пропадут и трафик на сайт снизится.
Чтобы этого не произошло, при смене адреса страницы нужно указать поисковикам новый адрес данной страницы, с помощью 301 редиректа.
Пример настройки редиректа:
Redirect 301 /старая_ссылка домен/новая_ссылка
Старый адрес страницы — указываем адрес ссылки без домена, допустим полный адрес ссылки домен/старая_ссылка, то мы указываем просто старая_ссылка.
домен/новая_ссылка — новый адрес страницы. Обратите внимание, что между 301 и / стоит пробел, так же, как и между старая_ссылка и домен/новая_ссылка.
Этот способ подойдет для переадресации, как с одной страницы сайта на другую, так и с домена на домен, т.е. на другой сайт.
Что делать, если не работает 301 редирект?
Если 301 не работает, то вы можете использовать другую конструкцию переадресации страницы.
Пример второго способа редиректа:
RewriteCond %{QUERY_STRING} ^старая_ссылка$
RewriteRule ^новая_ссылка$ домен/новая_ссылка? [R=301,L]
Старый адрес страницы, так же указываем без домена и знака ?, если полный адрес страницы домен/старая_ссылка
домен/новая_ссылка — новый адрес страницы. (.*)$ http://site.ru/ [L,R=301]
Вместо site.ru — указываем адрес сайта, на который будет происходить переадресация.
Видео инструкция
apache — перенаправить один URL-адрес на другой URL-адрес с помощью .htaccess
спросил
Изменено 1 год, 10 месяцев назад
Просмотрено 70 тысяч раз
Поскольку я пытаюсь перенаправить один полный URL-адрес
http://www.domain-name.com/download/?page=download
На этот URL
http://www.domain-name.com/download/show
Чтобы это работало, я добавил этот код
rewriterule http://www. domain.com/download/?page=download(.*)$ http://www.domain.com/download/show$1 [ г=301,нк]
Но это не работает, и вместо этого он говорит, что URL-адрес, который я запрашиваю, говорит «Запрещено».
Кто-нибудь может дать какое-нибудь решение для этого.
- апач
- .htaccess
1
Перенаправление одного URL-адреса на другой URL-адрес с помощью файла htaccess:
Перенаправление 301 /en/php/project.html http://www.example.org/newpage.html
RewriteRule не включает строку запроса и не включает http-хост. Кроме того, первый аргумент — это шаблон регулярного выражения. Без http-хоста вам будет соответствовать либо download/page=download(etc)
, либо downloadpage=download(etc)
.
Вам понадобятся 2 правила. Тот, который перенаправляет уродливый URL-адрес на красивый URL-адрес. Одно правило должно переписать хороший URL-адрес на реальный рабочий URL-адрес: 9скачать/показать/?$ скачать/?page=download [QSA,END]
Второе правило использует флаг QSA, что означает, что исходная строка запроса будет добавлена к строке запроса в модуле перезаписи. Флаг END останавливает любую перезапись, так как L-флаг не делает этого в контексте .htaccess. END доступен только начиная с Apache 2.3.9 и вызовет внутреннюю ошибку сервера, если используется в более ранней версии. Обратите внимание, что вам, вероятно, придется изменить второе правило, чтобы оно указывало на реальный файл.
Документацию можно найти здесь.
Редактировать: Обратите внимание, что вы НИКОГДА не должны тестировать правила htaccess с ПОСТОЯННЫМ перенаправлением. Если вы допустите ошибку, браузер запомнит эту ошибку! Преобразовывайте временные перенаправления в постоянные перенаправления только в том случае, если все работает так, как вы ожидаете.
6
вы можете использовать это правило
Перенаправление /download/?page=download http://www.domain-name.com/download/show
Использовать RewriteEngine
:
RewriteEngine включен Перенаправление 301 http://www. domain-name.com/download/?page=download http://www.domain-name.com/download/show
0
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя адрес электронной почты и пароль
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
apache — перенаправить определенный URL-адрес на другой URL-адрес с помощью .
htaccessспросил
Изменено 2 года назад
Просмотрено 63к раз
Я хочу иметь псевдоним и перенаправить URL-адрес tz433.tld/jobs/
на страницу tz433.tld/about-us/jobs/
.
Это то, что я уже пробовал; не получилось: 9www\.tz433\.tld/jobs/$ RewriteRule (.*) http://tz433.tld/about-us/jobs.html [R=301,L]
Проблема в том, что в этом корневом пути есть несколько доменов, потому что это мультисайтовая установка typo3. Так что что-то вроде «перенаправить /jobs
на /about-us/jobs
» не работает, потому что это должно происходить только для определенного домена (tz433).
Следующая конкретная вещь — www.tz433.tld
автоматически перенаправляет на tz433.