我的 Hosts 文件:

我的 Hosts 文件:

我可以使用 mod_rewrite 将 forum.mydomain.org 重写为 mydomain.org/forum/ 吗?

因为我无法让子域名正常工作

- 更新 -

抱歉,克里斯,你的答案不起作用。

我的域名有一个名为 forum 的子域名,其 a 记录与我的 ip 有关

我的 Hosts 文件:

127.0.0.1       localhost
127.0.0.1       forum

httpd-vhosts.conf

<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot "c:/wamp/www"
ServerName localhost
ErrorLog "logs/localhost-error.log"
CustomLog "logs/localhost-access.log" common
</VirtualHost>

<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot "c:/wamp/www/forum"
ServerName forum
ErrorLog "logs/your_own-error.log"
CustomLog "logs/your_own-access.log" common
</VirtualHost>

答案1

是的,你可以,但你不需要。只需使用重定向:

<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName forum.mydomain.org
ErrorLog "logs/your_own-error.log"
CustomLog "logs/your_own-access.log" common
Redirect Permanent http://www.mydomain.org/forum/ 
</VirtualHost>

看了你发布的配置,有几点需要注意,

  1. 您需要将 NameVirtualHost 设置为 *:80,以使您的配置生效
  2. “forum.mydomain.org”目前无法使用,因为您没有为其设置虚拟主机条目。您需要添加类似上述的块。

可能发生的情况是,当您尝试访问 forum.mydomain.org 时,它不匹配任何 VirtualHost(因为它未定义)。因此,apache 使用默认 VirtualHost,我相信这是您定义的第一个 VirtualHost。

答案2

首先,是的,使用重定向是可能的,但更重要的是,为什么您无法让子域名正常工作?您遇到了什么问题?

再详细一点,我就能帮您找到最好的解决方案。

直流

如果您收到“禁止”信息,则可以排除 DNS 问题。您似乎遇到了配置问题。很可能您没有定义默认页面,并且花式索引被禁用。

尝试将以下内容添加到 httpd.conf

<IfModule mod_autoindex.c>
  IndexOptions FancyIndexing
</ifModule>

并确保 mod_autoindex 已加载

查看子域的虚拟服务器配置。将其与主域的虚拟服务器配置进行比较。

请记住,虚拟服务器会覆盖主配置,换句话说,如果在主配置部分(任何外部内容)中定义了某些内容,它将对您的虚拟主机保持有效。因此,请在 httpd.conf 的主要部分中更改它,或将其添加到您的虚拟主机。

也许如果你发布你的配置(只是相关部分,例如虚拟服务器),我们可以建议修改

直流

您的虚拟服务器配置看起来不错。

在没有看到更多配置的情况下,我大胆猜测问题出在论坛软件上。如果您可以通过 localhost/forum/index.php 进入论坛,但不能通过 forum/index.php 进入,那么我会说论坛软件配置为使用错误的域名。可能它被设置为使用 localhost 而不是 forum 作为域名。也可能它还被配置成使用目录 /forum/ 而不是根文件夹

这只是猜测,因为如果不仔细观察就很难确定确切的原因。

如果您创建一个名为 /forum/test.html 的文件,您可以使用它来访问它http://论坛/test.html

您可能需要将所有 .htaccess 文件重命名为 disabled.htaccess,以免它们造成干扰。重命名路径中的所有 .htaccess 文件,例如:即使 C:\wamp\www 中的一个文件(如果存在)

直流

相关内容