htaccess: перенаправить всю подпапку в корень - PullRequest
1 голос
/ 06 февраля 2012

Мой сайт использует Wordpress в качестве CMS, и он уже установлен в подпапке, но я настроил его для отображения в корневом домене.В основном, example.com отображает содержимое example.com / wordpress .

Старый (статический) веб-сайт также был в подпапке, и мне нужно перенаправить еговся подпапка (папка и все содержимое) обратно в корень - например, укажите example.com / oldwebsite до example.com .

Я пробовал много разныхподходит, и я просто не могу заставить его работать.

Ответы [ 2 ]

7 голосов
/ 10 марта 2012

Следующее решение довольно просто реализовать. Что вы получаете:

Примечания

  • если вы не используете постоянные ссылки, вам могут не понадобиться замечания .htaccess; Я всегда использую постоянные ссылки, и я думаю, что все должны это делать, и тогда это может не сработать, если вы не отредактируете .htaccess (я не уверен)
  • если вы не знаете, что делаете, и боитесь все испортить, перед запуском tar / zip папку WordPress
  • вы можете использовать плагин backwpup для создания резервной копии базы данных перед запуском
  • если у вас есть возможность сделать снимок вашего сервера, возьмите его сейчас

Что вам нужно, чтобы это работало:

  • если вы хотите постоянные ссылки, сначала работайте; это создает или нуждается в файле .htaccess
  • скопируйте /wp/index.php в /index.php, так что в корень вашего сайта
  • если у вас есть .htaccess, скопируйте его и в корень
  • если у вас уже есть .htaccess в корне, вам нужно как-то их объединить; Я полагаю сейчас, что это не так

Редактировать /index.php

  • добавить или отредактировать следующую строку, которая, вероятно, является последней строкой этого файла
  • вам нужно добавить подкаталог в вашу установку WordPress к пути

    require('./wp/wp-blog-header.php');
    

Редактировать / .htaccess

  • добавить следующий код в конец .htaccess или создать новый .htaccess
  • замените / wp / именем каталога, в который вы установили wordpress

    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /wp/
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /wp/index.php [L]
    </IfModule>
    # END WordPress
    

Настройки Wordpress

  • откройте админку WordPress и зайдите в настройки> общие
  • изменить следующие два поля
  • адрес wordpress: http://www.yourdomain.test/wp
  • адрес сайта: http://www.yourdomain.test/
  • адрес wordpress предназначен для ссылок на таблицы стилей и изображения, адрес сайта - там, где ссылки на другие страницы должны идти на

Переименование каталога WordPress

  • если вы переименуете папку WordPress, сначала сделайте это в админке сайта
  • это обновляет значение базы данных
  • после обновления админ больше не будет работать
  • затем переименуйте имя каталога в терминале или в вашем ftp-клиенте
  • затем проверьте все файлы .htaccess и index.php на старое имя и замените старое имя новым
0 голосов
/ 06 февраля 2012

Это пример, который я недавно переместил из подкаталога (/ wordpress) в корневой каталог (/).

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

Шаг 1: Сайт был на Cpanel, поэтому я сделал полную резервную копию сайта, чтобы избежатьшансы на крупную катастрофу, если что-то пойдет не так (вы знаете законы Мерфи, не так ли?).

Шаг 2: Я обновил текущий блог (на / wordpress) допоследняя версия, чтобы структура базы данных была обновленной.

Шаг 3: Я загрузил все файлы в корневом каталоге в локальную папку, чтобы я мог заменить перезаписанные файлы, если таковые требуются.

Шаг 4: Затем я загрузил полную копию программного обеспечения блога в корневой каталог (папка public_html, поскольку это был сайт cpanel).Если используются какие-либо специальные плагины, вы должны загрузить программное обеспечение из предыдущего расположения, а затем загрузить его в новом месте, чтобы также загружались файлы плагинов.

Шаг 5: Iзагрузил файл wp-config.php в корневой каталог, чтобы Wordpress ссылался на ту же базу данных.

Шаг 6 : я получил доступ к базе данных через PHPmyadmin и открыл таблицу wp_options.Обновил значения site_url и home options до http://www.domain.com, заменив http://www.domain.com/wordpress.

Шаг 7: Теперь я получил доступ к блогу через корневой URL, и он открылся нормально.Однако я заметил, что сообщения все еще были связаны с www.domain.com/wordpress/postname/id.

Шаг 8: Я получил доступ к консоли администратора и заново создал постоянные ссылки, чтобы обновить все URL-адреса сообщений.

Теперь весь блог работал без проблем.

Наконец, мне нужно было убедиться, что Google и другие поисковые системы перенаправят старые проиндексированные / wordpress / post URL-адреса на новые.,Для этого я отредактировал файл .htaccess в корневом каталоге.

Вставил следующий код перед разделом # BEGIN WORDPRESS (если вы не пропустите этот код из раздела WORDPRESS, Wordpress удалит его, когдаВы обновляете постоянные ссылки или выполняете любые другие действия, которые работают с файлом .htaccess).

RewriteEngine На RewriteBase / rewriterule ^ wordpress (/.*)?$ 1 [L, R = 301]

Это эффективно создает постоянное перенаправление для всех файлов с / wordpress / что-то имя / что-то имена.

...