Я пытался настроить свой сервер с доменным именем, но получаю ошибку 301 при вводе URL-адреса в браузере. (http://localhost работает нормально, но http://example.com выдает ошибку 301).
DNS-серверы указывают на правильный общедоступный IP-адрес, а маршрутизатор настроен на переадресацию входящих портов 80 на локальные 80 и правильный частный IP-адрес.
apache2.conf
был изменен следующим образом
#<Directory /var/www/>
# Options Indexes FollowSymLinks
# AllowOverride None
# Require all granted
#</Directory>
<Directory /srv/>
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
Это сделано для того, чтобы Wordpress устанавливался в предлагаемом /srv/www/wordpress/
и не нуждался в другом расположении Apache по умолчанию для веб-сайт....
wordpress.conf
в папке /etc/apache2/sites-enabled/
выглядит следующим образом:
<VirtualHost *:80>
ServerName example.com
ServerAlias *.example.com
DocumentRoot /srv/www/wordpress
<Directory /srv/www/wordpress>
Options FollowSymLinks
AllowOverride Limit Options FileInfo
DirectoryIndex index.php
Require all granted
</Directory>
<Directory /srv/www/wordpress/wp-content>
Options FollowSymLinks
Require all granted
</Directory>
</VirtualHost>
Я использую Ubuntu 20.04, Apache 2.4 .41, Wordpress 5.8.1
Заголовок этого вопроса изменен с «Получение ошибки 301 на сервере Apache» на «Локальный хост недоступен с Wordpress». Раньше я всегда получал простой ответ «время ожидания истекло» при входе в мой домен (http://example.com
) из моей локальной сети, в которой работает сервер. Ошибка 301 возникла, когда другой в то время получил доступ к моему домену извне. Теперь, когда я нашел способ получить доступ к моему домену извне, ошибка постоянна: «Локальный хост недоступен».Кстати, похоже, это происходит только на сайте Wordpress; когда я получаю доступ к сайту «Это работает» по умолчанию, все в порядке (я раскомментировал строки apache2.conf
, которые я выделил ранее). Возможно, это связано с тем, что Wordpress использует базу данных, а по умолчанию имя хоста
для пользователя "localhost"
?
[Для тех, кто пытается войти в домен, указывающий на их сервер: если вы делаете это из той же локальной сети, в которой находится сервер, это не сработает (ищите "петля NAT" для получения дополнительной информации). Это не обсуждается здесь, но я упоминаю об этом, потому что на это ушло много времени; localhost
работает, модификация /etc/hosts
может привести к некоторым махинациям — насколько мне известно, все еще не имитирует внешний запрос — но в конечном итоге использование доменного имени не сработает .]