小螞蟻學習頁面靜態化(完結)——僞靜態的實現和配置方法

僞靜態的做用:1.讓url更加美觀。2.對搜索引擎更加友好。php

php處理僞靜態案例分析(path_info模式)html

備註:nginx服務器默認下是不支持path_info模式的,須要去配置nginx

經過正則表達式去分析僞靜態url的特性,很簡單,直接上代碼web

<?php 
	//匹配這個url地址 /index.php/2/1.html
	if(preg_match('/(\d+)\/(\d+)\.html/', $_SERVER['PAHT_INFO'],$arr)){
		$type	=	$arr[1];
		$category_id	=	$arr[2];
		
		//一些業務邏輯處理	好比查詢數據庫
	}else{
		//一些業務邏輯處理
	}

 ?>

Apache下配置rewrite方法正則表達式

    1.虛擬域名的配置 數據庫

    2.httpd_vhost.conf設置
apache

虛擬域名的配置windows

    1. httpd.conf 文件開啓相關模式
服務器

        去掉一下兩句以前的 #  
性能

            LoadModule rewrite_module modules/mod_rewrite.so

            Include conf/extra/httpd-vhosts.conf

    2. 打開/extra/httpd_vhost.conf文件,在裏面配置相關域名和僞靜態規則

            <VirtualHost *:80>(這裏能夠指定ip)

                ServerAdmin webmaster@dummy-host2.example.com

                DocumentRoot "D:\ai\Program Files\phpStudy\WWW\demo"(這裏指定路徑)

                ServerName www.demo.com    (這裏指定域名)

                ErrorLog "logs/dummy-host2.example.com-error.log"

                CustomLog "logs/dummy-host2.example.com-access.log" common


                RewriteEngine on    (開啓僞靜態引擎)

                RewriteCond    %{DOCUMENT_ROOT}%{REQUEST_FILENAME}!-d    

                RewriteCond    %{DOCUMENT_ROOT}%{REQUEST_FILENAME}!-f

                (上面的這兩句是說,若是訪問的url路徑有真實存在的靜態頁面,就加載該靜態頁面,若是不存在就執行僞靜態。固然,若是但願無論有沒有頁面,都要執行僞靜態的話,就把上面兩句刪了就好)

                RewriteCond    ^/detail/([0-9]+)$ /detail.php?id=$1    (配置僞靜態路徑)

            </VirtualHost>

    3. 修改    c:windows/system32/drivers/etc/hosts

            添加 127.0.0.1 www.demo.com

這樣apache下rewrite配置,就妥妥搞定了。

nginx下rewrite配置方法

找到配置文件 cd /etc/nginx/conf.d

找到對應頁面的配置文件,編輯它

    ……

        if(!-$request_filename){

            rewrite ^/detail/(\d+).html$ /detail.php?id=$1 last;

            break;

        }

    ……

這樣就能夠了。by the way,僞靜態配置的太多,也是會影響服務器的性能的。

相關文章
相關標籤/搜索