Редирект htaccess не работает: Почему не работает 301 redirect htaccess? — Хабр Q&A

page2.html /page2.php [R=301,L] <FilesMatch «robots.txt$»> RewriteEngine off </FilesMatch> ## EXPIRES CACHING ## <IfModule mod_expires.c> ExpiresActive On ExpiresByType image/jpg «access 1 year» ExpiresByType image/jpeg «access 1 year» ExpiresByType image/gif «access 1 year» ExpiresByType image/png «access 1 year» ExpiresByType text/css «access 6 month» ExpiresByType text/html «access 1 month» ExpiresByType application/pdf «access 1 month» ExpiresByType text/x-javascript «access 1 month» ExpiresByType application/x-shockwave-flash «access 1 month» ExpiresByType image/x-icon «access 1 year» ExpiresDefault «access 6 month» </IfModule> ## EXPIRES CACHING ## <IfModule mod_deflate.c> AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/vnd.ms-fontobject AddOutputFilterByType DEFLATE application/x-font AddOutputFilterByType DEFLATE application/x-font-opentype AddOutputFilterByType DEFLATE application/x-font-otf AddOutputFilterByType DEFLATE application/x-font-truetype AddOutputFilterByType DEFLATE application/x-font-ttf AddOutputFilterByType DEFLATE application/x-javascript AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE font/opentype AddOutputFilterByType DEFLATE font/otf AddOutputFilterByType DEFLATE font/ttf AddOutputFilterByType DEFLATE image/svg+xml AddOutputFilterByType DEFLATE image/x-icon AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/javascript AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/xml BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\. 0[678] no-gzip BrowserMatch \bMSIE !no-gzip !gzip-only-text/html Header append Vary User-Agent </IfModule>
  • php
  • .htaccess
  • http-status-code-404
  • веб-сайт
  • error404
2

Зарегистрируйтесь или войдите

Регистрация через Google

Регистрация через Facebook

Регистрация через почту

Отправить без регистрации

Почта

Необходима, но никому не показывается

Отправить без регистрации

Почта

Необходима, но никому не показывается

By clicking “Отправить ответ”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

настраиваем 301 редирект ⋆ Калейдоскоп событий

Содержание:

Быстрая навигация по этой странице:

  • Вместо вступления
  • Основные выражения для записей кодов
  • Приступаем к работе
  • Полезный совет

Вместо вступления

Часто, набирая какой — нибудь адрес в поисковой системе, пользователь натыкается на сообщение, что такого адреса или страницы не существует. Для недопущения таких случаев создателями web-сайтов и URL – адресов используется htaccess 301 редирект, т.е. перенаправление в директиве htaccess (не путать с редиректом на PHP).

Редирект htaccess дается в помощь веб-мастеру для того, чтобы после создания нового URL-адреса поисковик интернета не только быстро нашел запрашиваемую страницу, но и для идентификации старого URL – адреса с новым.

htaccess — файл для важной конфигурации веб-серверов. Позволяет задавать наибольшее количество уточняющих параметров и разрешений для работоспособности веб-сервера у разных пользователей интернета. index\.php$ http://www.site.com/kontakti? [R=301,L]
[/code]

Редирект на другой сайт будет работать по отношению только к единственному конкретному адресу. Можно задать сразу несколько разных адресов. Также можно создать перенаправление и с помощью записи директив для модуля типа mod_rewrite. В этом случае переадресация с домена с www на адрес без www будет иметь вид:

Полезный совет

Так как память у нас не резиновая и держать все особенности настройки и весь синтаксис в ней очень трудно, то лучше всегда иметь в доступности файл-документ, в котором прописан редирект 301 со всей официальной документацией по теме. И, после настройки перенаправления, не забывайте проверять внутренние и главную страницы, как они работают. Реакция поисковых систем во многом зависит от самого сайта и его качества: если он трастовый, то весь процесс может занять не менее недели, идаже превысить один месяц.

apache 2.

2 — Почему перенаправления .htaccess работают с http, но не с https?

спросил

Изменено 9 лет, 7 месяцев назад

Просмотрено 21к раз

У меня есть простой файл .htaccess, который отлично работает на http-версии сайта, но не работает, когда я перехожу на https. Почему? 9(.*)$ index.php?id=$1 [L, QSA]

  • apache-2.2
  • mod-rewrite
  • .htaccess

Здесь недостаточно информации на 100%, чтобы продолжить, но в обычной настройке SSL по умолчанию (например, Red Hat/CentOS/Fedora) VirtualHost для SSL это установлен в собственном контейнере. Использование mod_rewrite требует, чтобы как минимум «AllowOverride FileInfo» был установлен в корне документа, чтобы он работал.

Проверьте конфигурацию SSL (по умолчанию /etc/httpd/conf. d/ssl.conf), убедитесь, что она выглядит примерно так:

 Корень документа /var/www/html
<Каталог /var/www/html>
  AllowOverride FileInfo

 

По умолчанию для AllowOverride установлено значение «Нет», поэтому любой другой параметр (например, «Все»), добавляющий возможности FileInfo, допустим.

http://httpd.apache.org/docs/2.2/mod/core.html#allowoverride

2

Возможно ли, что mod_rewrite не включен для сервера HTTPS или что .htaccess не используется?

Проверьте разрешения AllowOveride , используемые для обычного сайта, и сравните с версией SSL, возможно, это несоответствие. Вероятно, ввели для повышения безопасности, если бы не случайность.

mod_rewrite почти необходим, поэтому любой приличный хостинг-провайдер должен помочь разобраться с этим.

«работает над apache2 + ubuntu precision»

Подобная проблема возникла у меня, когда я использовал Slim framework и пытался удалить index. php, необходимый в URL-адресе. ReWrite отлично работал для http, но для https: он показывал, что URL не найден, что означало, что reWrite не работал.

После нескольких попыток я пришел к следующему решению:

 cd /etc/apache2/sites-enabled
 sudo vim по умолчанию-ssl
 

Изменить AllowOverride Нет на Все . Точно так же sudo vim ssl

У меня была похожая проблема, это то, что сработало для меня.

В вашем httpd.conf убедитесь, что у вас есть оба:

ServerName domain.com

ServerAlias ​​www.domain.com

.htaccess — перенаправление с http на https с помощью htaccess не работает

Задавать вопрос

спросил

Изменено 8 лет, 5 месяцев назад

Просмотрено 4к раз

 # НАЧАТЬ WordPress
 index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    Правило перезаписи. /index.php [Л]
# ЗАВЕРШИТЬ WordPress 9(.*)$ https://%{HTTP_HOST}/$1 [L,R=301] Это правило не выполнено, так как не выполнено одно из условий RewriteCond %{REQUEST_FILENAME} !-f Эта переменная не поддерживается: %{REQUEST_FILENAME} RewriteCond %{REQUEST_FILENAME} !-d Эта переменная не поддерживается: %{REQUEST_FILENAME}

Мой htaccess fu в лучшем случае слаб, поэтому я не могу понять, как

 RewriteEngine On
 

становится

 RewriteCond %{HTTPS} =o
 

который комментируется

 Это условие не было выполнено
 

или тот

 RewriteCond %{REQUEST_FILENAME} !-d
 

получает комментарий

 Эта переменная не поддерживается: %{REQUEST_FILENAME}
 

Может быть, я устал. Может быть, я просто глуп.

TIA

  • .htaccess
2

Может быть, я устал.

(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d Правило перезаписи. /index.php [Л]

Любой из вас двоих может скопировать мой ответ, и я отмечу его как первый (в порядке очереди) и удалю его. Почитай тех, кто должен.

И уточнить — я больше тупил, чем устал. Тоже напрягся, так как мой сайт не работал.

Что приводит меня к предостережению , которое полезно знать. Есть какое-то странное кэширование на стороне клиента? это сделало тестирование стохастическим, если не сказать больше. В настоящее время перенаправление работает в Safari@OSX и Chromium@Win, но не в IE11@Win. Для меня. Я думаю, что это исправится завтра или когда я запущу другую машину. 9Обновление 0159: я немного поиграл. В офисе моего заказчика http->

https на корневом уровне работало, но не по статье в IE, а зависало. Но в Опере это было. На следующий день IE тоже работал. Дома мой IE сделал то же самое сальто, но на день быстрее.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *