В принципе, я могу получить доступ ко всему, используя 127.0.0.1, но если я использую свой внешний IP (123.123.123.123), я получаю сообщение «страница не найдена».
Мой маршрутизатор перенаправляет порт HTTP 80 на порт 8080 на внутреннем IP-адресе моего сервера. Другими словами: (Приложение: HTTP | Начало: 80 | Конец: 8080 | Протокол: Оба | IP-адрес 192.168.0.101 | Включить [ДА]) Я знаю, что переадресация работает правильно, потому что когда я останавливаю переадресацию портов, я могу получить доступ к странице маршрутизатора, используя свой внешний IP.
Мой файл виртуальных хостов:
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /opt/lampstack-5.3.16-0/apps/wordpress
ServerName example.com
ServerAlias www.example.com
</VirtualHost>
и мой файл httpd.conf выглядит так:
Listen 80
Servername localhost:80
DocumentRoot "/opt/lampstack-5.3.16-0/apache2/htdocs
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny, allow
deny from all
</Directory>
<Directory "/opt/lampstack-5.3.16-0/apache2/htdocs">
Options FollowSymLinks
AllowOverride None
Order allow, deny
allow from all
</Directory>
решение1
Вы используете виртуальный хостинг на основе имени. Если вы попытаетесь получить доступ к своему веб-сайту, используя другое имя, вы получите сайт по умолчанию.
NameVirtualHost *:80
Servername localhost:80
решение2
Я думаю, что проблема возникает из-за указания DocumentRoot, на который наложены запреты, но вы должны получать ошибки 403 Forbidden Errors, а не 404 Not Found (по крайней мере, я получаю их, когда пытаюсь имитировать вашу конфигурацию).
DocumentRoot /opt/lampstack-5.3.16-0/apps/wordpress
поскольку в этом каталоге нет <Directory >
записи, он наследует разрешения по умолчанию
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny, allow
deny from all
</Directory>
попробуйте закомментировать строки deny
#Order deny, allow
#deny from all
или создав новую запись, чтобы проверить наличие этой проблемы
<Directory "/opt/lampstack-5.3.16-0/apps/wordpress">
Options FollowSymLinks
AllowOverride None
Order allow, deny
allow from all
</Directory>
Примечание:Сейчас вам следует попытаться получить доступ к серверу по IP-адресу. www.example.com никуда вас не приведет, поскольку для него нет записи DNS (или, если она есть, она не указывает на ваш сервер).
решение3
Похоже, проблема была в маршрутизаторе. Хотя я пытался перезапустить маршрутизатор, хотя я пробовал все с включенным и выключенным перенаправлением nat. Я просто сидел, и мой маршрутизатор сам себя перезагрузил. Мне пришлось ввести пароль по умолчанию, чтобы попасть на страницу администратора маршрутизатора (вместо пароля, который я установил). После этого все заработало нормально.
Также попробуйте не указывать ничего в файле vhosts, это тоже может сработать.
Мораль истории: на всякий случай попробуйте другой маршрутизатор.