У меня есть веб-сайт Apache2 с несколькими различными ресурсами, установленными непосредственно под DocumentRoot:
ЦЕЛЬ: Я бы хотел, чтобы пользователи переходили на WordPress автоматически, набирая http://example.com
, вместо http://example.com/wordpress
. Но мне также нужно иметь возможность доступа к другим ресурсам из корня. Например, URL http://example.com/mycodeigniterapp
должен работать как есть?
Вопрос: Какой хороший способ "скрыть" слово "wordpress" из URL, не "ломая" существующую функциональность?
Заранее спасибо!
Установите корень вашего документа в каталог WordPress.
DocumentRoot /path/to/webroot/wordpress/
Конечно, это сделает все остальные подкаталоги недоступны. Чтобы исправить это, у вас есть две возможности:
Вариант 1 требует меньше работы по настройке, но создает беспорядок в файловой системе. Сам WordPress не заботится о том, есть ли сторонние файлы и каталоги, смешанные с файлами WordPress, но вам нужно будет знать, какие файлы им не принадлежат.
Вариант 2 более чистый, но вам нужно будет создать псевдоним в своем apache config каждый раз, когда вы добавляете что-то новое:
Alias /phpmyadmin /path/to/webroot/phpmyadmin
Alias /mycodeigniterapp /path/to/webroot/mycodeigniterapp
Примечание: это сначала нарушит ссылки WordPress. WordPress хранит абсолютные URL-адреса в базе данных, и каждое сообщение по-прежнему будет ссылаться на / wordpress / ...
. Чтобы исправить это, вам просто нужно войти в систему, перейти к настройкам постоянной ссылки и нажать кнопку Сохранить
. Это обновит все постоянные ссылки в базе данных.
См. Документацию Перемещение WordPress по этой теме.
то, что находится в корневом веб-каталоге, если вы перейдете на http://example.com ? Обычно это индексная страница по умолчанию, например index.php или index.html. Или вы можете создать такую страницу и использовать ее, или вы можете использовать файл .htaccess и mod_rewrite.
Итак, в порядке легко / быстро:
Использование перенаправления из файла index.php (создать или отредактировать index.php в http://example.com ). Это работает, только если PHP настроен на вашем сервере, но, очевидно, он предназначен для работы вашего wordpress. Создайте файл index.php с помощью:
Php header ('Location: http://example.com/wordpress/'); ?>
Как мы это делали в 1990-е годы - супер-старая школа: в индексном файле HTML по умолчанию используйте тег META Refresh. PHP не требуется. Создайте http://example.com/index.html и отредактируйте:
Если ваш браузер не обновляет вас, Нажмите здесь .
Использование .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.
Либо вы используете папки для различения приложений, как сейчас, либо вы можете использовать разные URL-адреса, например
Я бы не стал пытаться помещать файлы разных приложений в одну и ту же корневую папку и не пытался бы создавать сложные правила перезаписи. Это не удастся, так как разные приложения будут иметь одинаковые имена файлов (например, у всех будут 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 /