共计 1216 个字符,预计需要花费 4 分钟才能阅读完成。
1. 检测 Apache 是否支持 mod_rewrite
通过 php 提供的 phpinfo()函数查看环境配置,通过 Ctrl+ F 查找到“Loaded Modules”,其中列出了所有 apache2handler 已经开启的模块,如果里面包括“mod_rewrite”,则已经支持,不再需要继续设置。
如果没有开启“mod_rewrite”,则打开目录 您的 apache 安装目录“/apache/conf/”下的 httpd.conf 文件,通过 Ctrl+ F 查找到“LoadModule rewrite_module”,将前面的”#”号删除即可。
如果没有查找到,则到“LoadModule”区域,在最后一行加入“LoadModule rewrite_module modules/mod_rewrite.so”(必选独占一行),然后重启 apache 服务器即可。
2. 在 httpd.conf 中配置虚拟主机
# Virtual hosts 启用虚拟主机
Include conf/extra/httpd-vhosts.conf
3.httpd_vhosts.conf 文件中,配置相应的选项. 详细讲解
<VirtualHost *:80>
DocumentRoot “C:/myenv/apache/htdocs/static3”
ServerName www.linuxidc.com
<Directory “C:/myenv/apache/htdocs/static3”>
#Deny from All 403 错误提示
Allow from All
# 如果文件目录在 apache 目录外面,注释掉 optinos 则,不能列表.
options +Indexes
# 下面这个表示可以去读取 .htaccess 文件, 也可以直接在虚拟主机中配置.
Allowoverride All
RewriteEngine On
RewriteRule news-id(\d+).html$ error.php?id=$1
# 这里可以设置多个重写的规则
#RewriteRule news-id.html$ error.php
</Directory>
</VirtualHost>
4. 在相应的目录下编写.htaccess 重写规则
例子:
<IfModule rewrite_module>
RewriteEngine On
RewriteRule news-id(\d+).html$ show.php?id=$1
# 这里可以设置多个重写的规则
#RewriteRule news-id.html$ error.php
</IfModule>
如果在 linux 下可以直接创建,
如果是在 windows 平台下,用记事本创建一个文件, 比如 abc.txt, 然后另存
为 .htaccess 文件即可
5. 重写规则,也可以直接在配置虚拟主机的 <Directory> 段配置。
本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-01/127455.htm