首页 > 代码库 > php伪静态配置

php伪静态配置

配置虚拟主机和伪静态

1.开启Apache的rewrite模块

   LoadModule rewrite_module modules/mod_rewrite.so

2.开启虚拟主机功能

  # Virtual hosts
   Include conf/extra/httpd-vhosts.conf

3.修改conf/extra/httpd-vhosts.conf文件

<VirtualHost *:80>

  DocumentRoot "F:/wamp/www/Teacher"   指定访问目录
  ServerName www.baidu.com                   指定允许访问的域名
  <Directory "F:/wamp/www/Teacher">      对这个目录进行设置

      Deny from all   禁止任何人访问,不写可以访问,是因为如果此目录没做设置,会继承他的上级目录来权限;如果上级目录禁止访问,可以再此目录中写Allow from all则这个目录就可以访问,不会继承父目录的权限

        Options none  不允许服务器显示目录中的文件列表,允许就改成Options indexes

         DirectoryIndex  abc.html  123.html 配置目录指定首页面,默认是index,指定后先选择abc.html,如果没有再显示123.html

         errorDocument  404  /404.html  指定发生错误后显示的页面,errorDocument后跟HTTP状态码,当遇到这种状态吗,就会执行后面指定的页面

         allowoverride all  允许到对应目录的.htaccess文件中 读取规则

        下面配置rewrite规则

         RewriteEngine On  开启重新功能(一定要检测是否启用mod_rewrite.so模块)

       RewriteRule   a.html  b.php  当访问a.html页面时,其实是访问b.php

         RewriteRule   news/id/(\d+).html   news.php?id=$1   为了广泛的使用,可以使用正则来匹配news/id/100.html这种都执向news.php,接收的参数就是前面匹配的数值

  </Directory>
</VirtualHost>

 

4.htaccess文件的写法

  在没有权限修改httpd-vhosts.conf文件的情况系下,可以使用.htaccess文件来做目录权限,如果.htaccess用不了,就看看httpd-vhosts.conf文件是否开启了allowoverride all

   <IfModule  rewrite_module>  #如果加载了rewrite_module模块

       这些规则和 httpd-vhosts.conf文件中的规则写法一样

   RewriteEngine On

       RewriteRule   news/id/(\d+).html   news.php?id=$1  

       可以写多条规则

   </IfModule>

5.做防盗链

<IfModule rewrite_module>
  RewriteEngine on
  RewriteCond %{HTTP_REFERER} !^http://(www\.)?xuni.com(/)?.*[NC]  RewriteRule.\.(gif|jpg|jpeg|bmp|png)

http://www.xuni.com/warning.xjpg [R,NC]
</IfModule>

 

6.在C:\Windows\System32\drivers\etc的host文件中添加域名指向到本地127.0.0.1       www.xuni.com

注意:在配置好后,打开localhost发现提示403错误,是因为开启了虚拟主机功能(第二步),在httpd-vhosts.conf文件中默认添加了几条规则,因为用的是Wamp环境,里面的DocumentRoot不是Wamp指定的根目录,导致localhost定位到的目录不对,这就是导致localhost不能访问403的原因,只要把默认的规则修改下

<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "f:/wamp/www"            #访问的根目录
ServerName localhost                          #允许访问的域名
ErrorLog "logs/dummy-host2.example.com-error.log"
CustomLog "logs/dummy-host2.example.com-access.log" common
</VirtualHost>

然后在后面添加自己需要的规则

php伪静态配置