blog.example.com 的 apache2 配置不起作用

blog.example.com 的 apache2 配置不起作用

我的博客在 IP 为 10.10.10.10(不是真实的)的服务器上运行。

服务器上仅有一个该博客的虚拟主机。

这是 Apache 配置:

VirtualHost star:80
服务器名称 blog.example.com
服务器别名 blog.example.com
服务器管理员[电子邮件保护]
DocumentRoot /var/www/
RewriteEngine 在
RewriteCond %{HTTP_HOST} ^[^.]+.example.com$
RewriteRule ^(.+) %{HTTP_HOST}$1 [C]
RewriteRule ^([^.]+).example.com/(.*) /var/www/$1
DirectoryIndex index.php

目录 /var/www/ AllowOverride 所有
顺序 Deny,Allow
允许所有
/Directory
/VirtualHost

我的 DNS blog.example.com 指向这个 IP 地址 10.10.10.10 。

当我第一次加载 blog.example.com 时,它加载正确,没有任何问题。但每当我点击链接时,它都会显示如下网址http://10.10.10.10/login.phpETC。

我是新手。请帮我设置一下。
重写规则有问题吗?

答案1

问题是,生成 URL 的应用程序似乎正在创建绝对 URI,而由于您的服务器配置,您的服务器无法处理这些 URI。

我想到两种可能的解决方案:

正确配置应用程序,以便它可以创建相对 URI,或者如果确实需要,则创建具有正确主机的绝对 URI。

肮脏的解决方案是制定一个ServerAlias指令来处理这个问题:

ServerAlias 10.10.10.10 

用这种方法解决问题也是可行的,但不建议mod_rewrite这样做。但这种风格太糟糕了,我就不解释了。

相关内容