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.hsp.com <Directory "C:/myenv/apache/htdocs/static3">#Deny from All 403错误提示Allow from All#如果文件目录在apache目录外面,注释掉optinos 则,不能列表.options +Indexes#下面这个表示可以去读取 .htaccess文件,也可以直接在虚拟主机中配置.Allowoverride AllRewriteEngine OnRewriteRule news-id(/d+).html$ error.php?id=$1#这里可以设置多个重写的规则#RewriteRule news-id.html$ error.php </Directory></VirtualHost>
4.在相应的目录下编写.htaccess 重写规则 例子:
<IfModule rewrite_module>
RewriteEngine OnRewriteRule news-id(/d+).html$ show.php?id=$1#这里可以设置多个重写的规则#RewriteRule news-id.html$ error.php</IfModule>如果在linux下可以直接创建,如果是在windows平台下,用记事本创建一个文件,比如abc.txt,然后另存为 .htaccess文件即可
5.重写规则,也可以直接在配置虚拟主机的<Directory>段配置.
新闻热点
疑难解答