Redirect 301 PHP — Stack Overflow на русском

Вопрос задан

Изменён 4 месяца назад

Просмотрен 65 раз

Мне нужно сделать некоторые редиректы для сайта, однако shopify не дает изменять файл .htaccess. Не могу разобраться как это сделать

  1. Нужно при помощи редиректа 301 убрать слеши и двойные слеши в конце url со всех страниц сайта
  2. Нужно при помощи редиректа 301 сделать, чтобы все ссылки были только с буквами в нижнем регистре для всех страниц сайта
  3. Нужно убрать с конца url часть index.html и main.html со всех страниц сайта
  • php
  • redirect
  • shopify
1

Shopify не дает доступ к файлам на сервере.

В Shopify учитывают проблему дублей при краулинге поисковыми системами, указывая, что для всех url продукции /collections/./products/ канонической является страница /products/ и именно её нужно индексировать. Но при этом Shopify в своей внутренней перелинковке сайта по умолчанию ссылается на вторичные ссылки /collections/./products/ а не на первичные /products/.

И хотя тег canonical зачастую верно работает при обходе сайта роботами поисковых систем, помните, что Google рассматривает canonical как рекомендации, а не правило.

или

Попробуйте решить проблему в админке нажав Online Store -> Navigation -> URL Redirects -> Add URL redirect. Здесь вы можете добавить перенаправление со старого URL на новый.

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.

php — Три последовательных 301 редиректа объединить в один

Вопрос задан

Изменён 10 месяцев назад

Просмотрен 27 раз

Помогите пожалуйста объединить 301 последовательных редиректы в один. Пытался сам, но чего то я не могу понять.

http://www.example.com/index.php?asd=asd -> https://example.com

Нужно :

  1. редирект с http на https
  2. редирект с www.example.com на example.com
  3. редирект с example.com/index.php на example.com/
  4. редирект с example.com/ на example.com ( но только на главной, на остальных случаях, в конце, слэш нужно оставить )

Нужно объединить в один. (.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

Заранее спасибо !

  • php
  • .htaccess
  • redirect
  • редирект
  • 301
1

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

Регистрация через 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.

apache 2.2 — Почему перенаправление 301 не работает после удаления расширения .PHP через HTACCESS?

Вместо того, чтобы вообще «не перенаправлять 301», я ожидаю, что ваш код создаст цикл перенаправления. Так как более ранняя переадресация также захватит переписанный URL-адрес (более поздней директивой) и перенаправит и т. д. и т. д.

не .php версии страниц без 301 перенаправления.

Не так ли? Или здесь нужно убрать «не» или «не»?

доступны для просмотра версии .php и не .php страниц.

Это может означать, что MultiViews включен. MultiViews должен быть отключен, чтобы ваши директивы mod_rewrite выполнялись правильно. (Здесь вы используете MultiViews или mod_rewrite, однако у вас могут возникнуть проблемы с попыткой перенаправить , если MultiViews включен. ) Чтобы убедиться, что MultiViews отключен, добавьте следующее в начало файла

.htaccess 9.Файл 0007:

 Параметры - MultiViews
 

Однако, чтобы избежать цикла перенаправления, вместо сопоставления с REQUEST_URI , который изменяется по мере перезаписи URL-адреса (так же, как URL-путь, который соответствует шаблону RewriteRule ), вы должны либо сопоставить против THE_REQUEST (который содержит первую строку запроса и не изменяется) ИЛИ просто проверьте, что переменная среды REDIRECT_STATUS пуста, чтобы убедиться, что вы проверяете только первоначальный запрос, а не переписанный запрос. 9\s]+)\.php http://www.example.com/$1$2 [L,R=301]

NB: Всегда

тестируйте с 302 (временными) переадресациями, чтобы избежать проблем с кэшированием.

Тем не менее, ваше регулярное выражение можно немного подчистить. Согласно вашим примерным URL-адресам, /courses является первым сегментом пути, однако ваше регулярное выражение соответствует «курсам/» в любом месте URL-пути. И вы разрешаете перенаправлять любой URL-адрес с информацией о пути - это намеренно? Вам нужна только одна обратная ссылка; не два. И нет необходимости экранировать косые черты в 9%{REQUEST_URI}.php [L]

Это может работать для определенных URL-адресов, которые вы тестируете, однако это правило может легко сломаться (и оно не нацелено конкретно на подкаталог

/courses ). %{REQUEST_FILENAME}.php не обязательно совпадает с %{REQUEST_URI}.php . Таким образом, хотя условие может быть выполнено, вы все равно можете переписать недопустимый URL-адрес, что может привести к бесконечному циклу — 500 Internal Server Error.

Например, при запросе на /courses/blue-course/foo (на основе вашего примера), где /courses — это каталог в файловой системе, а blue-course.php — это файл, в который вы собираетесь перезаписать (нет подкаталога /blue-course ) и /foo — это просто что-то, что было ошибочно добавлено к URL-адресу (возможно, даже злонамеренно третьей стороной), тогда это приведет к ошибке 500.

%{REQUEST_URI}.php [L]

Обратите внимание, что это (по умолчанию) полностью переопределит любые директивы mod_rewrite в родительской конфигурации ( каталог контекст).

301 Redirect - Примеры инструментов онлайн-генератора

Примеры онлайн-инструментов Генераторы

ГЕНЕРАТОРЫ ПЕРЕНАПРАВЛЕНИЯ URL

Мы предоставляем набор профессиональных инструментов генератора URL-адресов для пакетного создания специального кода, используемого для перенаправления. У нас есть объемный чистый PHP онлайн-генератор 301, генератор перенаправления страницы файла конфигурации Apache на страницу, генератор для консоли AWS S3. Каждый инструмент имеет широкий спектр опций для обработки любого перенаправления страницы на страницу и создания необходимого кода перенаправления.

PHP
заголовок 301 перенаправление
через заголовок Location

HTACCESS
генератор перенаправления
мод Rewrite (RewriteRule)

AWS S3
JSON генератор
KeyPrefix для точной страницы

900 02

301 ГЕНЕРАТОР ПЕРЕНАПРАВЛЕНИЯ

КАК ВЫБРАТЬ ПРАВИЛЬНЫЙ ИНСТРУМЕНТ ДЛЯ ПЕРЕНАПРАВЛЕНИЯ?

Что такое перенаправление 301?

    Это специальная информация (код), отправляемая браузеру или поисковому роботу вашим сервером при посещении определенной страницы. Код означает переехал навсегда.

Как правильно выбрать генератор для постоянной переадресации URL?

    Если ваш сервер Apache и у вас есть доступ к одному из файлов конфигурации, вы можете использовать код перенаправления RewriteRule или RedirectMatch. Используйте RedirectMatch только в том случае, если у вас уже есть много таких перенаправлений, которые вам нужно сохранить. Если у вас есть доступ только к файлам PHP, вы можете использовать чистый генератор кода перенаправления PHP 301. Если вы используете AWS S3 для размещения статического веб-сайта, рассмотрите возможность использования специального кода JSON для перенаправления. На данный момент у нас нет генераторов для Nginx серверов Microsoft.

Зачем мне использовать перенаправления?

    Чтобы ваш сайт был доступен для поиска поисковыми системами, такими как Google, вам необходимо применить переадресацию 301 на старые страницы после изменения URL-адреса. Без этой информации поисковые роботы не могут понять (в большинстве случаев), что URL-адрес страницы был изменен, но содержание остается прежним и ценным для того, чтобы быть видимым в результатах поиска. Если ваш доход зависит от органического поиска, есть особая причина для правильной переадресации. Итак, если вы решили сменить домен или просто переименовать адрес страницы, вам необходимо сделать редиректы. В таких ситуациях вам может помочь один из наших инструментов генерации кода.

Когда следует применять постоянное перенаправление?

    1. Вы решили изменить URL-адрес какой-либо страницы, чтобы сделать его более релевантным содержанию страницы для удобства пользователей. - Вам нужно перенаправить со старого URL на новый URL.
    2. Вы удалили какую-то страницу и создали новую с аналогичным содержанием. - Вам может понадобиться сделать такой редирект, чтобы сохранить PageRank и позиции в поиске.
    3. Вы заменили весь сайт новым, и у вас новая структура URL-адресов. Вам нужно будет сделать массовые редиректы. С этой задачей помогут генераторы массовой переадресации.

"Redirect" и "RewriteRule"

   Если у вас уже есть код перенаправления Apache, например Redirect 301 "/old" "http://example. com/new", обратите внимание, что эти правила обрабатываются с помощью "mod_alias", но не "мод_переписать". Хотя оба модуля могут выполнять постоянные перенаправления, «mod_rewrite» более функционален. Mod_rewrite сделает систему перезаписи более гибкой и может помочь вам в будущем. Например, «mod_alias» не может полностью обрабатывать строки запроса. Эти модули Apache имеют отдельный поток, и правила перенаправления могут конфликтовать с вашими новыми правилами «mod_rewrite». Кроме того, будьте осторожны, потому что правило работает на основе каталогов, и все файлы внутри каталогов и подкаталогов также будут перенаправлены. Итак, если вам нужно использовать пакетный онлайн-генератор перенаправления и у вас есть небольшое количество правил перенаправления 301, мы можем порекомендовать переписать эти правила с помощью функции «mod_rewrite», чтобы сохранить логику чистой. Для простых перенаправлений и некоторых корпоративных решений с высокой нагрузкой mod_alias также может быть хорошим выбором.