基本上,我可以使用 127.0.0.1 正常访问所有内容,但如果我使用我的外部 IP(123.123.123.123),就会出现页面未找到的情况。
我的路由器正在将 HTTP 端口 80 转发到我服务器内部 IP 地址上的端口 8080。换句话说:(应用程序: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 禁止错误,而不是 404 未找到(至少当我尝试模仿您的配置时我会得到这样的错误)。
DocumentRoot /opt/lampstack-5.3.16-0/apps/wordpress
因为此目录没有条目,所以<Directory >
它继承了默认权限
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny, allow
deny from all
</Directory>
尝试注释掉拒绝行
#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 文件中不包含任何内容,这样也可以
故事的寓意是:以防万一,请尝试使用不同的路由器。