wampserver开启伪静态

发布时间:2023/12/28 23:57:07 打印 字号:

WampServer设置apache伪静态出现404 not found及You don't have permission to access / on this server解决方法分析

在使用WampServer进行开发的过程中,有时候需要对Apache服务器进行伪静态的设置。但是在设置完成后,经常会出现404 not found 或者 You don't have permission to access / on this server 的错误提示。本文将详细讲解此问题的解决方法。


问题分析

出现这种情况,主要是由于Apache服务器没有正确的识别伪静态配置导致的。下面将分析这两种错误的原因和对应的解决方法。


404 not found

一般来说,出现404 not found错误是因为Apache服务器没有正确的解析伪静态规则。这个时候主要需要检查以下几个方面:


确认.htaccess文件是否存在:.htaccess文件是Apache服务器配置文件中的一种,如果不存在的话,服务器无法解析伪静态规则。因此在设置伪静态之前,必须先定义好.htaccess文件。

确认伪静态规则是否正确:在.htaccess文件中的伪静态规则一般都是按照RewriteRule,RewriteCond等指令来定义的。如果这些规则没有正确地编写的话,就会导致404 not found错误。可以按照如下案例进行检查:

#Apache伪静态规则设置

   RewriteEngine On                #开启Rewrite引擎

   RewriteBase /                   #设置站点根目录

   RewriteRule ^index\.html$ / [L] #将index.html重定向到根目录

   RewriteRule ^([a-z]+)/?$ /index.php?c=$1 [L,QSA] #将http://localhost/category 重定向到http://localhost/index.php?c=category


确认是否开启了Apache服务器中mod_rewrite模块:如果模块没有开启,就无法解析伪静态规则。可以按照以下步骤进行检查及设置:

点击wampserver图标,找到“Apache” ->“Apache Modules” ->“rewrite_module”,将其勾选,然后重新启动wampserver。

You don't have permission to access / on this server

出现这种问题的原因,一般是因为Apache服务器没有正确地定义站点根目录。因此解决这种问题的关键就是修改“httpd.conf”文件中的“DocumentRoot”字段。可以按照以下步骤进行操作:


找到httpd.conf配置文件:在wampserver主窗口,点击“Apache” ->“httpd.conf”即可进入httpd.conf配置文件的编辑页面。

找到DocumentRoot配置项:在httpd.conf中搜索并定位“DocumentRoot”字段,找到该行代码后,手动修改前面的路径,并在后面添加一个“/”,如下所示:

DocumentRoot "d:/wamp/www/"


1、找到Apache环境配置文件httpd.conf文件,搜索rewrite_module ,

2、将“#LoadModule rewrite_module modules/mod_rewrite.so”前面的注释符’#’去掉,修改为“LoadModule rewrite_module modules/mod_rewrite.so”,然后保存,保存后记得重启环境

3、找到“AllowOverride None”改为“AllowOverride All”.;

4、修改节点:找到配置文件中的<Directory>节点,将其中AllowOverride的值改为All:

<Directory "d:/wamp/www/">

      ...

      AllowOverride All

      ...

   </Directory>


注意:这个值默认是None,如果不改为All,那么.htaccess中的重写规则不会被执行,因此就无法解决问题。


示例说明

以下是两个实用的示例,用于说明以上问题的解决方法:


示例1

在进行ASP.NET开发的过程中,需要使用WampServer进行伪静态的设置。但是在设置完成后,出现了404 not found的错误提示。


解决方法:

1. 检查.htaccess文件是否存在,确认其存在。

2. 检查伪静态规则是否正确,修改规则为如下所示:


<IfModule mod_rewrite.c>

       RewriteEngine on

       RewriteBase /

       RewriteCond %{REQUEST_FILENAME} !-d

       RewriteCond %{REQUEST_FILENAME}\.aspx -f

       RewriteRule ^(.*)$ /$1.aspx [L]

   </IfModule>


检查mod_rewrite是否开启,确认开启。

示例2

在进行PHP开发的过程中,需要使用WampServer进行伪静态设置。但是在设置完成后,出现了You don't have permission to access / on this server的错误提示。


解决方法:

1. 打开WampServer的主窗口,找到“Apache” ->“httpd.conf”,进入httpd.conf编辑页面。

2. 在httpd.conf中找到DocumentRoot配置项,手动修改其路径为“d:/wamp/www/”。

3. 修改<Directory>节点中的AllowOverride为All。