Какой хороший способ скрыть "wordpress" из URL WordPress?

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

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

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

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

2
задан 11 October 2018 в 08:10
3 ответа

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

DocumentRoot /path/to/webroot/wordpress/

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

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

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

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

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

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

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

3
ответ дан 3 December 2019 в 08:38

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

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

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

     
     
  2. Как мы это делали в 1990-е годы - супер-старая школа: в индексном файле HTML по умолчанию используйте тег META Refresh. PHP не требуется. Создайте http://example.com/index.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.

3
ответ дан 3 December 2019 в 08:38

Либо вы используете папки для различения приложений, как сейчас, либо вы можете использовать разные 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>

Edit 2:

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

5
ответ дан 3 December 2019 в 08:38

Теги

Похожие вопросы