php配置rewrite模块

(1)    启用rewrite模块,在默认情况下,没有启用

修改httpd.conf文件

#启动rewrite模块

LoadModule rewrite_module modules/mod_rewrite.so

确认是否启动成功

<?php phpinfo();?>

(2)    配置我们的虚拟主机

httpd.conf 打开虚拟主机的配置文件

# Virtual hosts

Include conf/extra/httpd-vhosts.conf

修改 httpd-vhost.conf

<VirtualHost *:80>

DocumentRoot "C:/myenv/apache/htdocs/static2"

#Directory配置节点,用于指定该目录下的文件或是图片.的访问权限

#设置虚拟主机的错误页面,欢迎页面

<Directory "C:/myenv/apache/htdocs/static2">

</Directory>

</VirtualHost>

(3)    在hosts文件中,配置ip和主机的对应关系

127.0.0.1 www.hsp.com

(4)    这时我们访问 http//www.hsp.com/news.php

我们可以访问到该页面.

? 一个重要的知识点:

在apache服务器中,如果某个文件夹,没有指定访问权限,则以上级目录的权限为准,如果他自己指定了访问权限,则以自己的为准.

请注意,在配置访问权限的时候,顺序很重要:

#Order allow,deny 表示先看allow ,在看deny,留下的就是可以访问

Order deny,allow

Deny from all

allow from 127.0.0.1

(5)    关于<Directory> 节点配置必须掌握

比较完整的配置文件

第一种配置方式

<VirtualHost *:80>

DocumentRoot "C:/myenv/apache/htdocs/static2"

#Directory配置节点,用于指定该目录下的文件或是图片.的访问权限

#设置虚拟主机的错误页面,欢迎页面

ServerName www.hsp.com

<Directory "C:/myenv/apache/htdocs/static2">

#这里可以指定是否让人访问

#Allow from all

#是否列出文件目录结构

# 如果希望列出 indexes 不希望 none

#Options indexes

#如何配置网站的首页面

DirectoryIndex abc.html abc2.html

#如何配置404错误页面,引导用户引入新页面

errorDocument 404 /404.html

#配置我们的rewrite规则

RewriteEngine On

#rewrite的规则 如果 aaa.html 就跳转到news.php

#$1 表示反向引用,第一个子表达式的内容

#说明如果在正则规范中直接引用子表达式的内容,则使用\n

#如果是在后面因为,则使用$n

RewriteRule news-([a-zA-Z]+)-id(\d+)\.html$  news.php?type=$1&id=$2

</Directory>

</VirtualHost>

特别说明: 容易犯的错误,一定要记住启用rewrite模块.

思考: 上面我们配置都要去修改 httpd-vhost.文件,但管理员不给你这个权限,怎么办?

思路: 可以把配置,写到 .htaccess文件.

第二种配置方式: 即把一部分配置放在 http-vhost.conf 文件, 把rewrite 规则放在 .htaccess

<VirtualHost *:80>

DocumentRoot "C:/myenv/apache/htdocs/static2"

#Directory配置节点,用于指定该目录下的文件或是图片.的访问权限

#设置虚拟主机的错误页面,欢迎页面

ServerName www.hsp.com

<Directory "C:/myenv/apache/htdocs/static2">

#这里可以指定是否让人访问

#Allow from all

#是否列出文件目录结构

# 如果希望列出 indexes 不希望 none

#Options indexes

#如何配置网站的首页面

DirectoryIndex abc.html abc2.html

#如何配置404错误页面,引导用户引入新页面

errorDocument 404 /404.html

#如果你配置了allowoverride all 这表示到对应的目录的.htaccess去匹配规则

allowoverride all

</Directory>

</VirtualHost>

在对应的文件下 .htaccess文件

<IfModule rewrite_module>

#如果rewrite 模块启用

#配置我们的rewrite规则

RewriteEngine On

#rewrite的规则 如果 aaa.html 就跳转到news.php

#$1 表示反向引用,第一个子表达式的内容

#说明如果在正则规范中直接引用子表达式的内容,则使用\n

#如果是在后面因为,则使用$n

RewriteRule news-([a-zA-Z]+)-id(\d+)\.html$  news.php?type=$1&id=$2

#RewriteRule aaa.html  news.php

</IfModule>

请注意: 项目中的 .htaccess文件的配置也是继承管理

第三种配置方法:

http-vhost.conf

<VirtualHost *:80>

DocumentRoot "C:/myenv/apache/htdocs/static2"

#Directory配置节点,用于指定该目录下的文件或是图片.的访问权限

#设置虚拟主机的错误页面,欢迎页面

ServerName www.hsp.com

<Directory "C:/myenv/apache/htdocs/static2">

#如果你配置了allowoverride all 这表示到对应的目录的.htaccess去匹配规则

allowoverride all

</Directory>

</VirtualHost>

.htacces文件

#这里可以指定是否让人访问

#Allow from all

#是否列出文件目录结构

# 如果希望列出 indexes 不希望 none

#Options indexes

#如何配置网站的首页面

DirectoryIndex abc.html abc2.html

#如何配置404错误页面,引导用户引入新页面

errorDocument 404 /404.html

<IfModule rewrite_module>

#如果rewrite 模块启用

#配置我们的rewrite规则

RewriteEngine On

#rewrite的规则 如果 aaa.html 就跳转到news.php

#$1 表示反向引用,第一个子表达式的内容

#说明如果在正则规范中直接引用子表达式的内容,则使用\n

#如果是在后面因为,则使用$n

RewriteRule news-([a-zA-Z]+)-id(\d+)\.html$  news.php?type=$1&id=$2

#RewriteRule aaa.html  news.php

</IfModule>

时间: 2024-10-11 05:26:00

php配置rewrite模块的相关文章

apache 配置rewrite模块,URL中隐藏index.php

打开httpd.conf 去掉下面的井号 #LoadModule rewrite_module modules/mod_rewrite.so把前面的警号去掉 在网站根目录添加.htaccess RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [L] 重启服务器

翻译:为 URL Rewrite 模块创建重写规则

原文名称:Creating Rewrite Rules for the URL Rewrite Module 原文地址:http://www.iis.net/learn/extensions/url-rewrite-module/creating-rewrite-rules-for-the-url-rewrite-module 原文作者:Ruslan Yakushev URL Rewrite 模块是 IIS 服务器的一个可下载的扩展模块,在  Windows Azure Web Sites (W

Ubuntu Server 14.04 Apache2.4 虚拟主机配置 以及 模块重写的配置

环境:Ubuntu Server 14.04 Apache2.4 1.虚拟主机配置 在apache2.4中,虚拟主机的目录是通过/etc/apache2/sites-available中配置的,默认情况下,apache有一个默认的虚拟主机文件叫000-default.conf.我们将会复制000-default.conf文件内容到我们新的虚拟主机配置文件中. sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/si

Apache如何使用rewrite模块

问题 在虚拟主机站点中,有些站点需要rewrite URL支持. 解决方案 1. 需要在apache的配置文件httpd.conf中加入相应配置: Apache-1.3.x版本,在/usr/prima/apache_ssl/conf/httpd.conf里加入:LoadModule rewrite_module libexec/mod_rewrite.soAddModule mod_rewrite.c Apache-2.x版本,在/etc/httpd/conf/httpd.conf里加入:Loa

单独编译apache的rewrite模块

 单独编译apache的rewrite模块 当我们编译安装好apache的时候,就像这样: ./configure \ --prefix=/usr/local/apache \   //安装的路径 --with-included-apr \        // 跨平台 --enable-so \                 //启用DSO --enable-deflate=shared \    //动态共享的方式编译deflate模块 --enable-expires=shared \  

nginx 配置rewrite 笔记

nginx 配置rewrite笔记: 通过下面的示例来说明一下,1. 先说说location : location 表示匹配传入的url地址,其中配置符有多种,各种情况的意义不一样: location ^~ /public/ { root /data/wwwroot/a.php.abc.cc; } location ^~ /public/ 表示匹配以 "/public/" 开头的url,匹配成功执行其中的内容,执行完毕后停止并退出. location / { root /data/ww

Nginx 配置 fastdfs-nginx-module 模块

上篇介绍了FastDFS的安装,这里主要是给NG安装fastdfs-nginx-module 模块,来完成FastDFS的上传与下载 安装 Nginx 和 fastdfs-nginx-module [[email protected] softwares]#wget -c https://nginx.org/download/nginx-1.10.1.tar.gz fastdfs-nginx-module 直接用附件中的,网上下载的貌似有很多很问题   [[email protected] so

php5.5安装及phpmyadmin&nginx配置php模块

安装php5.5: 下载源地址:rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm rpm包安装:yum install php55w.x86_64 php55w-cli.x86_64 php55w-common.x86_64 php55w-gd.x86_64 php55w-ldap.x86_64 php55w-mbstring.x86_64 php55w-mcrypt.x86_64 php55w-mysql.x86_64 php55w-

vsftpd架设(配置pam模块)

Vsftpd 是很安全的ftp软件 VSFTPD的目录结构 /usr/sbin/vsftpd: VSFTPD的可执行文件 /etc/rc.d/init.d/vsftpd:启动脚本 /etc/vsftpd/vsftpd.conf:主配置文件 /etc/pam.d/vsftpd:PAM认证文件 /etc/vsftpd.ftpusers:禁用使用VSFTPD的用户列表文件 /etc/vsftpd.user_list:禁止或允许使用VSFTPD的用户列表文件 /var/ftp:匿名用户主目录 一,安装v