apache 重写和虚拟目录配置
要求:
假如我請(qǐng)求一個(gè)地址:www.lxy.com/news-sport-id123.html
轉(zhuǎn)成:www.lxy.com/show.php?cate=news&class=sport&id=123
步驟:
①首先我們需要在apache中啟用rewrite模塊
打開apache的httpd.conf文件,找到#LoadModule rewrite_module modules/mod_rewrite.so,將前面的‘#’去掉。
②創(chuàng)建虛擬目錄
<VirtualHost *:80>
? ?#網(wǎng)站域名
? ServerName www.lxy.com ?
? ?#網(wǎng)站根目錄
? DocumentRoot "E:/web/lxy/"
? ?#設(shè)置網(wǎng)站目錄的權(quán)限
? <Directory "E:/web/lxy/">
? ?#設(shè)置順序,如下規(guī)則的意思是首先允許所有訪問但是拒絕1.1.1.1這個(gè)ip訪問這個(gè)剛開始把我弄暈了
? Order allow,deny
Allowfrom All
? Deny from 1.1.1.1
? #options選項(xiàng)設(shè)置網(wǎng)站是否可以列出文件列表,網(wǎng)站正式上線后除了有特殊需求否則都不允許列出文件列表,但是需要特別注意的是如果開啟apache的rewrite后,options的參數(shù)必須為+indexes
? ?#允許列出文件列表
? Options +Indexes
? ?#不允許列出文件列表的選項(xiàng)為 Options +Indexes
? ?#設(shè)置歡迎頁面
DirectoryIndex ?11.php
? ?#如果匹配不到,可以指定一個(gè)錯(cuò)誤頁
errorDocument404 /404.php
? ?#可以把Allowoverride這個(gè)啟動(dòng),然后把重寫規(guī)則放到 .htaccess中,也可以直接放在虛擬主機(jī)中配置
? #Allowoverride All
? RewriteEngine On
? ?#重寫規(guī)則
? #RewriteRule news-id(\d+)\.html$ show.php?id=$1
? RewriteRule ^([a-zA-Z]+)-([a-zA-Z]+)-id(\d+)\.html$show.php?cat=$1&class=$2&id=$3
? </Directory>
</VirtualHost>
③.下面我寫一個(gè)show.php的文件,內(nèi)容主要為打印出接收到的參數(shù)即可
<?php
? Print_r($_SERVER);
?>
接下來我們來訪問以下即可
我們也可以把重新規(guī)則寫入.htaccess文件中,將.htaccess文件放到網(wǎng)站根目錄 或者 需要執(zhí)行的PHP文件所在的文件夾下。然后將 Allowoverride All添加到虛擬目錄的配置選擇中去,在.htaccess文件中添加重寫規(guī)則即可。
#創(chuàng)建一個(gè)Rewrite Engine (URL重寫工具)
RewriteEngine On ?
#定重寫規(guī)則: 主要使用正則表達(dá)式
RewriteRule ?^([a-zA-Z]+)-([a-zA-Z]+)-id(\d+)\.html$ show.php?cat=$1&class=$2&id=$3
效果跟將重寫規(guī)則寫在配置文件中是一樣的。
轉(zhuǎn)載于:https://blog.51cto.com/wangyueheng88/1383911
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的apache 重写和虚拟目录配置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: svn怎么上传文件 — 百度经验无耻推广
- 下一篇: 【pl/sql番外篇】 存储过程 游标