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>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM