Редирект с поддомена на подпапку

Редирект из поддомена на подпапку

Сайт непридусмотрительно писался с использованием денвера
Есть админка, лежащая под папкой www(или public_html)

Когда закинули на хостинг, оказалось там такую структуру организовать нельзя (поддомен.домен.by)

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Редирект с поддомена на основной домен
Добрый день. На сайте региональные поддомены вида город.сайт.ру. Нужно поставить редирект с.

Редирект с поддомена на домен
Здравствуйте! Столкнулся со следующей проблемой. Имеется домен sitename.ru и созданный к нему.

Редирект с поддомена на подпапку. Смотреть фото Редирект с поддомена на подпапку. Смотреть картинку Редирект с поддомена на подпапку. Картинка про Редирект с поддомена на подпапку. Фото Редирект с поддомена на подпапкуРедирект с поддомена с www на поддомен без www
Нужен совет по настройке файла htaccess. Нужен редирект с поддомена с www на поддомен без www.

Если я вас правильно понимаю, то вы хотите при обращении к http://example.com/directory1 сделать перенаправление на http://directory1.example.com, то вам поможет следующий RewriteRule:

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Создать папку и подпапку
Подскажите ещё, могу понять как создать папку и подпапку: Мне нужно, чтоб при нажатии кнопки.

Удалить единственную подпапку
Посмотрел коллекцию команд и не нашел нужной. Необходимо удалить из списка папок все подпапки в.

Перенаправить запросы в подпапку Symfony 3.2
Все как бы гениально просто и типично)) 100500 туториалов, но ни один не показывает, как без.

Источник

Потратив достаточно долгое время на поиски готового скрипта, пришлось констатировать тот факт, что либо все это работает не совсем правильно, либо вообще не работает.

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

Теперь подробно остановимся на каждом пункте.
Для запуска mod_rewrite используется команда RewriteEngine on, если ее закомментировать, то весь код перестанет работать, часто это бывает очень полезно.
RewriteBase указывает на использование текущей папки.

RewriteCond устанавливает правила, в зависимости от которых будет или не будет произведена замена адреса. В первом случае проверяется является ли поддомен с названием www, естественно его перенаправлять не нужно, поэтому перед строкой стоит восклицательный знак, обозначая отрицание. В скобках указано com|ru, используется только если вы имеете два одинаковых домена в разных зонах и они являются псевдонимами (алиасам) другу друга. Если вы используете один сайт, то запись будет такой:

Во втором RewriteCond проверяется наличие в имени адреса поддомена, причем работать будет одинаково с www и без него, т.е. сайты www.forum.domain.com и forum.domain.com будут обрабатываться одинаково.

Третье условие используется для проверки уже исправленного адреса, т.к. mod_rewrite выполняется пока условия перестанут подходить. Итак мы проверяем в строке запроса (URI, то что идет после имени домена, например /info.html) наличие папки куда мы перенаправили запрос, в данном случае это sub, перед ним стоит восклицательный знак, который сообщает, что условие не должно выполняться при наличии такой подстроки.

И наконец само правило преобразования адреса RewriteRule. В нем мы заменяем строку запроса на новый адрес:
sub + второй найденный элемент (условие RewriteCond % (www\.)?(.*)\.domain\.(com|ru)$, то что находится во вторых скобках) + адрес, который был изначально ( описанный в том же RewriteRule: ^(.*)$)

Перед запуском этого скрипта вам необходимо создать в папке sub необходимые вам папки поддоменов.

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

Бывают ситуации, когда необходимо использовать два разных адреса для одной и той же папки, например:
domain.com/forum/
и
forum.domain.com

В данном случае у нас на сервере уже есть папка forum, и полностью копировать ее еще и в папку sub не очень удобно и не совсем правильно. Найденный вариант использования mod_rewrite не совсем универсальный, но все позволяет обслужить конечное число поддоменов:

Источник

Грамотный переход от подпапок к поддоменам в мультисайтах и обратно

Редирект с поддомена на подпапку. Смотреть фото Редирект с поддомена на подпапку. Смотреть картинку Редирект с поддомена на подпапку. Картинка про Редирект с поддомена на подпапку. Фото Редирект с поддомена на подпапку

Если вы когда-либо устанавливали мультисайты в WordPress, и затем решали перейти с подпапок к поддоменам или обратно, вы знаете, что это не так просто сделать.

К сожалению, страница Network Setup в бэкэнде мультисайтов не дает возможности быстрого переключения. Да, это печально.

Если вы попытаетесь переключиться вручную, то, скорее всего, вы встретитесь с ошибками, которые будет довольно трудно дешифровать, да и кодекс WordPress не объясняет, как осуществить такое изменение.

Сегодня мы покажем вам, что нужно сделать, чтобы переключиться с поддоменов на подпапки и обратно.

Перед тем, как менять свою сборку

Есть несколько вещей, которые вы должны сделать перед тем, как вносить изменения:

Перенос вашей сети в корневую папку

Если вы хотите использовать мультисайты, будет гораздо лучше, если ваша сборка находится в корневой папке вашего сервера, т.е. доступна по адресу «yourdomain.com», а не «yourdomain.com/wordpress». Это позволит избежать разных ошибок при попытке обращения к сайтам в сети. Если ваша сборка установлена в папку, вы увидите следующую ошибку на странице Network Setup:

«Поскольку ваша сборка находится в папке, сайты в вашей сети WordPress должны использовать подпапки.

Предупреждение! Главный сайт при установке в подпапку должен будет использовать измененную структуру постоянных ссылок, что потенциально повредит существующие ссылки»

Эта ошибка происходит по той причине, что ваша мультисайтовая сборка уже находится в подпапке. К примеру, по адресу: «yourdomain.com/wordpress». В данном случае для мультисайтов вам придется использовать подпапки.

Если вы хотите использовать поддомены, вам нужно будет сначала переместить свой сайт в корень сервера. Не знаете, как сделать это? Прочтите следующее руководство: Как безопасно переместить ваш WordPress-сайт (ничего не потеряв!)

Включать или не включать «www.»?

Ваша сеть мультисайтов будет прекрасно работать, если вы удалите префикс «www.» из вашего домена. Это не обязательно, но это поможет обойти проблему с поддоменами в виде «site1.www.yourdomain.com», к примеру. Такое происходит не всегда, но если это произойдет, то выглядеть это будет не очень красиво.

Ваш сайт в любом случае будет работать, но если вы хотите удалить префикс, вам нужно просто изменить поля URL WordPress («WordPress Address (URL)») и URL сайта («Site Address (URL)») в разделе «Параметры» – «Общие» в панели администратора.

Наконец, вам нужно будет убедиться в том, что вы используете валидное доменное имя, которое связано с вашим сайтом, а не IP-адрес или localhost. Вы не сможете переключиться на поддомены, если у вас нет валидного домена.

Риски такого переключения

Если вы в настоящий момент работаете с подпапками и хотите перейти к поддоменам, есть некоторый риск – он заключается в том, что некоторые поддомены уже могут существовать. Это создаст конфликт, и сайты не будут отображены.

К примеру, если у вас уже есть блог по адресу blog.yourdomain.com, и вы переключите вашу мультисайтовую сборку на поддомены, после чего создадите новый сайт по тому же адресу blog.yourdomain.com, вы в итоге просто получите ошибку, когда попытаетесь получить доступ к сайту по его адресу. Это будет особенно проблематично, если вы позволите посетителям регистрировать свои собственные сайты.

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

Аналогично, если у вас в настоящее время установлены поддомены, и вы попробуете переключиться к подпапкам, вы можете столкнуться с той же самой проблемой, когда у вас уже имеются некоторые определенные пути. Другими словами, у вас уже имеются некоторые подпапки, такие как yourdomain.com/blog или yourdomain.com/news.

Если вы создадите новый сайт с тем же именем blog или news, вы не сможете его просмотреть. Вы, естественно, можете провести переключение, если у вас нет подпапок или если вы знаете, что сайты с уже существующими путями не будут созданы.

Удаление кода мультисайтов в ваших файлах

Перейдите к файлу wp-config.php в вашей сборке WordPress и удалите из него мультисайтовый код, после чего сохраните файл. Выглядит он примерно следующим образом:

Он будет расположен над следующей строкой кода, которую вы не должны трогать:

Сохраняете файл и переходите к следующему шагу, на котором мы удалим все ненужные таблицы в базе данных.

Удаление мультисайтовых таблиц

Переходим в секцию Databases после входа в cPanel, и щелкаем по кнопке phpMyAdmin. Щелкаем по нашей базе данных WordPress с левой стороны для отображения списка таблиц БД в основной области контента.

Вы можете видеть, что я выбрал базу данных из трех перечисленных. Она используется в моей основной сборке WordPress. Вам, скорее всего, придется найти имя вашей БД, если вы не знаете, какую БД вы должны выбрать. Я именую всегда БД так, чтобы впоследствии я мог их идентифицировать в ситуациях, таких как эта.

Теперь ищем следующие таблицы в списке и удаляем их:

Если у вас уже установлены мультисайты, и вы хотите изменить путь ваших сайтов, вам надо будет дополнительно позаботиться и о других вещах. Достаточно переключить путь вашей сети, и все сайты, созданные вами, будут вызывать ошибки. Вам нужно будет сделать кое-что еще.

Вам нужно будет удалить также следующие таблицы из БД:

Помните, что # нужно заменить на ID ваших сайтов. К примеру, если у вас всего три сайта, вам нужно будет найти таблицы wp_2_commentmeta и wp_3_commentmeta наряду с самой первой таблицей в списке.

Как только вы найдете таблицы, вы можете удалить их одну за другой или выбрать все их сразу, используя чекбокс слева от имени таблицы. На скриншоте ниже я начал это делать:

Если вы выбрали все необходимые таблицы в списке вместо удаления их по одной, прокрутите в самый низ страницы, щелкните по полю with selected и выберите Drop.

Подтвердите, что вы желаете удалить таблицы. Как только процесс будет завершен, вы можете переустановить свою сеть.

Переключение вашей сборки

На первом шаге вам нужно будет выбрать wildcard поддомены, если вы хотите перейти к ним. Это позволит вам автоматически создавать любые поддомены, как только новый сайт будет создан.

В кодексе есть страница, где объясняется, как сделать это на разных хостингах: настройка Wildcard поддоменов. Однако в ней не так много информации, посвященной тому, как сделать это в cPanel, поэтому я быстро пробегусь по этому процессу. После входа в cPanel переходим к секции Domains и щелкаем по кнопке Subdomains.

Далее выбираем домен из выпадающего списка, если он не задан автоматически. В поле Subdomain вводим звездочку (“*”). Выбираем корневую директорию, куда должна быть установлена ваша сеть, после чего щелкаем Create. Пример этого вы можете видеть на изображении ниже:

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

При переходе к установке в подпапки удалите wildcard-домены, если они уже имеются. Конечно, конфликты с вашими новыми параметрами в таком случае вряд ли появятся, но зато это позволит сохранить все вещи опрятными и структурированными на будущее.

Теперь переходим в самый низ файла wp-config.php и ищем там комментарий:

Над этой строкой добавляем следующий код, если вы хотите перевести вашу сеть на поддомены:

Если вы хотите перевести вашу сеть на подпапки, то тогда добавляем следующий код:

Ваш код может выглядеть не совсем так. В более старых версиях в коде будут присутствовать открывающие и закрывающие теги «# BEGIN WordPress» и «# END WordPress», которые вы должны сохранить, однако с версии 3.5 вам больше не требуется добавлять их.

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

Добавление динамических 301 редиректов

В коде выше мы используем 301 редиректы от подпапок к поддоменам. Первый пример, начинающийся с пятой строки – это структура, которая понадобится вам, если вы хотите опустить какие-либо строковые параметры запросов в самом конце URL-адреса. Обычно такое может понадобиться в том случае, если вы перенаправляете отдельную страницу без красивых постоянных ссылок. Если вы хотите сохранить строковые параметры, прикрепленные к URL, используйте структуру, показанную во втором примере, которая начинается с 10 строки. Она полезна в том случае, если у вас есть плагины, выполняющие действия на странице, которую вы пытаетесь перенаправить. В таком случае вам понадобится сохранить строковые параметры запроса во избежание разных ошибок.

Ниже приведен пример 301 редиректа, если вы переключаетесь с поддоменов на подпапки. Для этого примера работает та же структура, которая была описана выше. Я пометил каждый пример, чтобы вам было проще найти отличия между ними.

Для каждой страницы, которую вы хотите перенаправить, вам нужно будет повторить код и выбрать три строки, которые верны для вас; либо включить строковые параметры, либо исключить их в новом URL. Каждый новый редирект должен стоять ниже предыдущего.

Вы также, скорее всего, заметили, что в коде имеется id страницы. Вы можете найти его, перейдя в раздел Страницы – Все страницы в панели администратора вашего сайта. Наведя на заголовок одной из ваших страниц, вы увидите ID и тип, добавленный к ссылке, которая выводится в статус-баре в самом низу вашего браузера.

Вместо использования page_id, как показано в примерах, вы можете ввести category_id или post_id для редиректа рубрик блога или записей. Суть будет той же, вне зависимости от того, что вы используете.

Начиная с этого момента, у вас не должно быть проблем со страницами, которые имеют тот же самый путь, что обычно происходит при переключении с поддоменов на подпапки. Также у вас не будет проблем и с любыми другими страницами.

Несколько заключительных слов

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

Если вашей мультисайтовой сборке меньше месяца, вы сможете сменить путь без необходимости прохождения всех этих шагов. В таком случае вам повезло!

В следующей версии WordPress переключение с поддоменов к подпапкам не будет ограничиваться одним месяцем. Однако на данный момент вам нужно будет следовать указанным инструкциям, чтобы выполнить переход.

Источник

Редирект с поддомена на домен

*вместо site и poddomen реальные

Редирект работает, но перенаправляет только на главную страницу, на index.php.

Думала проблема в строчке RewriteRule ^(.*) https://site.ru/% [L,R=302,QSA], заменяю на RewriteRule ^(.*) https://site.ru/$1 [L,R=302,QSA] — работает также.

Думаю, раз не получается с помощью htaccess, сделаю с помощью php, так как точно знаю, что больше 3 иерархий (test/test/test) не будет. В корневом htaccess прописываю:

Не понимаю с чем это связано. Подскажите, ещё варианты или может, какая ошибка допущена?
Спасибо.

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Редирект с поддомена на основной домен
Добрый день. На сайте региональные поддомены вида город.сайт.ру. Нужно поставить редирект с.

Редирект из поддомена на подпапку
Сайт непридусмотрительно писался с использованием денвера Есть админка, лежащая под папкой www(или.

Редирект с поддомена на домен
Здравствуйте! Столкнулся со следующей проблемой. Имеется домен sitename.ru и созданный к нему.

Может зависеть от конкретных настроек хостинга. Попробуйте разные варианты

Лучше всего это перенаправление выполнять отдельно, т.е. на отдельном «сайте».

Добавлено через 5 минут
Если сайт на основном домене ранее не существовал на поддомене, а на поддомене был другой сайт, то шаблонным перенаправлением вы можете сильно навредить сайту. В этом случае я рекомендую вам использовать перенаправление только с главной поддомена, а на внутренних разместить информативную страницу 404 с нужными ссылками. В дополнение к этому можно подключить к отдельным внутренним адресам индивидуальные переанправления. Все это поддерживается нашим сервисом.

скольких человек с форума делал именно такую настройку.

Добавлено через 2 минуты

Добавлено через 3 минуты

Еще раз повторяю, что это перенаправление не имеет никакого отношения к перенаправлению во фронт-контроллер обычного сайта. Его нужно делать отдельно. Я вам изначально писал только про него. И Taatshi тоже.

Можно и внешнее перенаправление делать на PHP, но обычно этим не нагружают код сайта. Т.е. даже на PHP внешнее перенаправление делают отдельно, сайт отдельно. В упомянутом мной сервисе тоже используется фронт-контроллер на PHP, но он не имеет никакого отношения к фронт-контроллеру обычного сайта.

В этой переменной будет в том числе и строка параметров.

Можно в этом убедиться на примере коррекции «главного зеркала» для www. estic.ru/test?param=value (убрать пробел перед estic).

Настя223, вы когда что-то спрашиваете, не пытайтесь привносить свой способ решения. Спрашивайте в общем. Я так и не понял, что вам конкретно нужно. Если «созреете» продолжить разговор, пишите с цитированием или включением моего ника средствами форума (от темы пока отписываюсь).

Добавлено через 5 минут
Сделаю еще одно небольшое уточнение. Конечно, внешние перенаправления могут выполняться в коде обычного сайта, но они обычно касаются либо коррекции адреса внутри сайта (без изменения протокола и порта), т.е. только изменения REQUEST_URI, либо перенаправления на сторонние ресурсы.

PHP знаю только на уровне написать функции.

в index.php прописываю:

при любом запросе пусто, пытаюсь вывести весь url:

То есть я не могу распарсить маршрут, так как его просто нет, точнее он почему-то не приходит.

Теперь я уже ушла от темы редиректа, поскольку я не понимаю, почему пустой маршрут. Вдруг в будущем мне снова попадётся этот хостинг, и нужно будет с нуля написать cms или ещё какую большую систему, а тут даже маршрут не получить, не говоря же о контроллерах и прочем)

Источник

301 редирект c сайта с поддомена на основной домен через htaccess

301 редирект с сайта с www на без www позволяет осуществить полный переезд сайта на одну из версий и закрепить единое главное зеркало.

С поддомена на основной домен

Если требуется выполнить условие перенаправления для всех поддоменов без исключения:

RewriteCond % ^(.+).domain.ru$
RewriteRule (.*) http://site.ru/$1?region=%1 [L,R=301,QSA]

Когда речь идет о конкретном поддомене следует использовать:

RewriteCond % ^poddomen.domain.ru$ [NC]
RewriteRule (.*) http://site.ru/$1?region=poddomen [L,R=301,QSA]

Как сделать редирект через файл htaccess

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

Редирект с поддомена на подпапку. Смотреть фото Редирект с поддомена на подпапку. Смотреть картинку Редирект с поддомена на подпапку. Картинка про Редирект с поддомена на подпапку. Фото Редирект с поддомена на подпапку

Вводим нужное нам правило.

Редирект с поддомена на подпапку. Смотреть фото Редирект с поддомена на подпапку. Смотреть картинку Редирект с поддомена на подпапку. Картинка про Редирект с поддомена на подпапку. Фото Редирект с поддомена на подпапку

Как проверить работу 301 редиректа?

Для этого можно использовать инструмент проверки ответа сервера Яндекса:

Здесь вводим адрес первой страницы и видим следующее:

Редирект с поддомена на подпапку. Смотреть фото Редирект с поддомена на подпапку. Смотреть картинку Редирект с поддомена на подпапку. Картинка про Редирект с поддомена на подпапку. Фото Редирект с поддомена на подпапку

Как видим правило применилось и работает корректно.

Источник

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

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