Назад | Перейти на главную страницу

Какой хороший способ скрыть слово «wordpress» из URL-адреса WordPress?

У меня есть веб-сайт Apache2 с несколькими разными ресурсами, все они установлены непосредственно под DocumentRoot:

ЦЕЛЬ: я бы хотел, чтобы пользователи переходили в WordPress автоматически, набрав http://example.com, вместо того http://example.com/wordpress. Но мне также нужно иметь доступ к другим ресурсам из корня. Например, URL http://example.com/mycodeigniterapp по-прежнему нужно работать как есть?

В: Какой хороший способ «скрыть» слово «wordpress» из URL-адреса, не «нарушая» какие-либо существующие функции?

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

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

  • sql.example.com
  • blog.example.com
  • ...

Я не стал бы пытаться помещать файлы разных приложений в одну корневую папку и не пытался бы создавать сложные правила перезаписи. Это не удастся, поскольку разные приложения будут иметь одинаковые имена файлов (например, у всех будут index.php и config.php). Кроме того, это значительно усложнит обновление приложения.

Редактировать:

Это означало бы создание нескольких записей DNS A, указывающих на один и тот же IP-адрес - тот, который слушает ваш сервер. Далее вы создадите несколько VirtualHost заявления, каждое со своими DocumentRoot. Примером может быть:

<VirtualHost *:80>
  ServerName sql.example.com
  DocumentRoot /var/www/html/phpmyadmin
  # ...
</VirtualHost>
<VirtualHost *:80>
  ServerName blog.example.com
  DocumentRoot /var/www/html/wordpress
  # ...
</VirtualHost>

Изменить 2:

Что касается WordPress, возможно, эта ссылка может быть полезна для перемещения вашего сайта WordPress из подкаталога в корень (под) домена: https://askwpgirl.com/move-wordpress-from-subdirectory-to-root-directory/

что находится в вашем веб-корне, если вы перейдете в http://example.com ? Обычно это индексная страница по умолчанию, например index.php или index.html. Или вы можете создать такую ​​страницу и использовать ее, или вы можете использовать файл .htaccess и mod_rewrite.

Итак, в порядке легкого / быстрого:

  1. Используя перенаправление из файла index.php (создайте или отредактируйте index.php в http://example.com). Это работает, только если PHP настроен на вашем сервере, но, очевидно, он предназначен для работы вашего wordpress. Создайте файл index.php с помощью:

    <?php header('Location: http://example.com/wordpress/'); ?>
    
  2. Как мы это делали в 1990-е годы - супер-старая школа: в индексном файле HTML по умолчанию используйте тег META Refresh. PHP не требуется. Создайте http://example.com/index.html и отредактируйте:

    <html>
    <head><meta http-equiv="refresh" content="0;URL=http://example.com/wordpress/"></head>
    <body>If your browser does not refresh you, <a href="/wordpress/">Click here</a>.</body>
    </html>
    
  3. Использование .htaccess и mod_rewrite - Отредактируйте файл ".htaccess" в корневом веб-каталоге example.com. Если его нет, создайте новый файл с именем .htaccess. Добавить:

    RewriteEngine On
    RewriteRule ^ http://example.com/wordpress [L,R=301]
    

Примечание: если №3 заставляет сайт показывать Белый экран смерти (WSOD) на каждой странице, вам, вероятно, нужно включить mod_rewrite с помощью sudo a2enmod rewrite && sudo apachectl restart. Или, если вы не знаете, что означает sudo, попробуйте метод 1 или 2.

Установите корень документа в каталог WordPress.

DocumentRoot /path/to/webroot/wordpress/

Конечно, это сделает все остальные подкаталоги недоступными. Чтобы исправить это, у вас есть две возможности:

  1. Переместите все остальные каталоги в каталог WordPress.
  2. Используйте псевдонимы для других каталогов

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

Вариант 2 более чистый, но вам придется создавать псевдоним в конфигурации apache каждый раз, когда вы добавляете что-то новое:

Alias /phpmyadmin /path/to/webroot/phpmyadmin
Alias /mycodeigniterapp /path/to/webroot/mycodeigniterapp

Примечание: это сначала приведет к разрыву ссылок WordPress. WordPress хранит абсолютные URL-адреса в базе данных, и каждое сообщение по-прежнему будет ссылаться на /wordpress/.... Чтобы исправить это, вам просто нужно войти в систему, перейти к настройкам постоянной ссылки и нажать на Save кнопка. Это обновит все постоянные ссылки в базе данных.

См. Документацию Перемещение WordPress по этой теме.