Apache 一直引用旧的 index.html

Apache 一直引用旧的 index.html

我刚刚在 Windows 上安装了 apache 2.2,但无法让它对我的更改做出反应。它在默认的 index.html 文件中一直显示“它起作用了!”。我已更改 DocumentRoot、<Document,并在新位置有一个 index.html。

DocumentRoot "C:/PersonalWebsite"
<Directory "C:/PersonalWebsite">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
#   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important.  Please see
# http://httpd.apache.org/docs/2.2/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks

#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#   Options FileInfo AuthConfig Limit
#
AllowOverride None

#
# Controls who can get stuff from this server.
#
Order allow,deny
Allow from all
</Directory>

<IfModule dir_module>
   DirectoryIndex index.html
</IfModule>

我在 URL 末尾没有任何尾部斜杠,并且我检查了目录和文件的权限,一切正常。我可以更改位于 中的文件内容index.htmlC:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs并且可以在浏览器中查看更改。因此,不知何故,在某个地方,它仍然指向旧路径。我在进行更改后还重新启动了服务,它不会因我输入的 URL 而崩溃。我还确保我正在编辑正确的 httpd 配置文件,方法是通过开始->程序->apache->编辑配置文件

- - - - - - 编辑 - - - - - - -

好的,我没有足够的字符来发布我发现的解决此问题的完整解释,所以我将把它发布在这里。

好吧,我尝试了上述方法,但没有成功。然后我尝试了其他方法。

  • 我一直在通过 重新启动 apache start menu->apache->control->restart,并且我刚刚尝试通过菜单再次停止它。
  • 然后我再次打开浏览器,尝试再次查看页面,结果成功了。我检查了托盘中的 apache 符号,发现它仍在运行。然后我通过托盘中的符号(而不是开始菜单)停止了该服务,结果它不再green-> red显示已停止。
  • 我再次启动它,然后 Windows(非管理员用户帐户)弹出一个提示,询问该httpd文件。我单击确定,然后转到浏览器,它成功了!

所以问题是通过菜单重新启动,而不是'真的'重新启动?而且它一直无法工作是因为它仍在使用旧httpd文件吗?这是 Windows 的问题吗?不是管理员帐户还是其他原因?

不过还是感谢您的建议!

答案1

我不认为你正在覆盖默认网站,因为这是它按你描述的方式工作所必需的。(我的经验是在 Linux 上使用 apache,因此你可能必须转换原则)

基本上,apache 会在某处有一个默认的 httpd.conf 文件,通常在安装文件夹下的 conf\httpd.conf 中,它将指定所有设置,例如 DocumentRoot,如果未在其他地方指定,则会使用这些设置。

我将首先在 httpd.conf 的底部添加以下内容,以声明用于您的网站的名称 VirtualHost;

NameVirtualHost *:80

<VirtualHost *:80>
ServerName myservername.com

 #what is your home page
 DirectoryIndex index.html 

LogLevel warn
 #    CustomLog logs/somelogfile.log
 #    ErrorLog      /var/log/httpd/someerror.lgo


DocumentRoot "C:/PersonalWebsite"
<Directory "C:/PersonalWebsite">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
#   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important.  Please see
# http://httpd.apache.org/docs/2.2/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks

#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#   Options FileInfo AuthConfig Limit
#
AllowOverride None

#
# Controls who can get stuff from this server.
#
Order allow,deny
Allow from all
</Directory>

<IfModule dir_module>
   DirectoryIndex index.html
</IfModule>

</VirtualHost>

并重新加载 apache。

相关内容