Redirect 301 PHP — Stack Overflow на русском
Вопрос задан
Изменён 4 месяца назад
Просмотрен 65 раз
Мне нужно сделать некоторые редиректы для сайта, однако shopify не дает изменять файл .htaccess. Не могу разобраться как это сделать
- Нужно при помощи редиректа 301 убрать слеши и двойные слеши в конце url со всех страниц сайта
- Нужно при помощи редиректа 301 сделать, чтобы все ссылки были только с буквами в нижнем регистре для всех страниц сайта
- Нужно убрать с конца url часть index.html и main.html со всех страниц сайта
- php
- redirect
- shopify
Shopify не дает доступ к файлам на сервере.
И хотя тег canonical зачастую верно работает при обходе сайта роботами поисковых систем, помните, что Google рассматривает canonical как рекомендации, а не правило.
или
Попробуйте решить проблему в админке нажав Online Store -> Navigation -> URL Redirects -> Add URL redirect. Здесь вы можете добавить перенаправление со старого URL на новый.
Зарегистрируйтесь или войдите
Регистрация через 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
Нужно :
- редирект с http на https
- редирект с www.example.com на example.com
- редирект с example.com/index.php на example.com/
- редирект с example.com/ на example.com ( но только на главной, на остальных случаях, в конце, слэш нужно оставить )
Нужно объединить в один. (.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
- php
- .htaccess
- redirect
- редирект
- 301
Зарегистрируйтесь или войдите
Регистрация через Google Регистрация через Facebook Регистрация через почтуОтправить без регистрации
ПочтаНеобходима, но никому не показывается
Отправить без регистрации
ПочтаНеобходима, но никому не показывается
apache 2.2 — Почему перенаправление 301 не работает после удаления расширения .PHP через HTACCESS?
Вместо того, чтобы вообще «не перенаправлять 301», я ожидаю, что ваш код создаст цикл перенаправления. Так как более ранняя переадресация также захватит переписанный URL-адрес (более поздней директивой) и перенаправит и т. д. и т. д.
не
.php
версии страниц без 301 перенаправления.
Не так ли? Или здесь нужно убрать «не» или «не»?
доступны для просмотра версии
.php
и не.php
страниц.
Это может означать, что MultiViews включен. MultiViews должен быть отключен, чтобы ваши директивы mod_rewrite выполнялись правильно. (Здесь вы используете MultiViews или mod_rewrite, однако у вас могут возникнуть проблемы с попыткой перенаправить , если MultiViews включен. ) Чтобы убедиться, что MultiViews отключен, добавьте следующее в начало файла
Параметры - MultiViews
Однако, чтобы избежать цикла перенаправления, вместо сопоставления с NB: Всегда Тем не менее, ваше регулярное выражение можно немного подчистить. Согласно вашим примерным URL-адресам, Это может работать для определенных URL-адресов, которые вы тестируете, однако это правило может легко сломаться (и оно не нацелено конкретно на подкаталог Например, при запросе на Обратите внимание, что это (по умолчанию) полностью переопределит любые директивы mod_rewrite в родительской конфигурации ( каталог контекст). Примеры онлайн-инструментов Генераторы REQUEST_URI
, который изменяется по мере перезаписи URL-адреса (так же, как URL-путь, который соответствует шаблону RewriteRule
), вы должны либо сопоставить против THE_REQUEST
(который содержит первую строку запроса и не изменяется) ИЛИ просто проверьте, что переменная среды REDIRECT_STATUS
пуста, чтобы убедиться, что вы проверяете только первоначальный запрос, а не переписанный запрос. 9\s]+)\.php http://www.example.com/$1$2 [L,R=301] /courses
является первым сегментом пути, однако ваше регулярное выражение соответствует «курсам/» в любом месте URL-пути. И вы разрешаете перенаправлять любой URL-адрес с информацией о пути - это намеренно? Вам нужна только одна обратная ссылка; не два. И нет необходимости экранировать косые черты в 9%{REQUEST_URI}.php [L]
). %{REQUEST_FILENAME}.php
не обязательно совпадает с %{REQUEST_URI}.php
. Таким образом, хотя условие может быть выполнено, вы все равно можете переписать недопустимый URL-адрес, что может привести к бесконечному циклу — 500 Internal Server Error. /courses/blue-course/foo
(на основе вашего примера), где /courses
— это каталог в файловой системе, а blue-course.php
— это файл, в который вы собираетесь перезаписать (нет подкаталога /blue-course
) и /foo
— это просто что-то, что было ошибочно добавлено к URL-адресу (возможно, даже злонамеренно третьей стороной), тогда это приведет к ошибке 500. 301 Redirect - Примеры инструментов онлайн-генератора
ГЕНЕРАТОРЫ ПЕРЕНАПРАВЛЕНИЯ URL
Мы предоставляем набор профессиональных инструментов генератора URL-адресов для пакетного создания специального кода, используемого для перенаправления. У нас есть объемный чистый PHP онлайн-генератор 301, генератор перенаправления страницы файла конфигурации Apache на страницу, генератор для консоли AWS S3. Каждый инструмент имеет широкий спектр опций для обработки любого перенаправления страницы на страницу и создания необходимого кода перенаправления.
PHP
заголовок 301 перенаправление
через заголовок Location
HTACCESS
генератор перенаправления
мод Rewrite (RewriteRule)
AWS S3
JSON генератор
KeyPrefix для точной страницы
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 также может быть хорошим выбором.