首頁

2013年5月31日 星期五

***PHP偽html文件解析~!*

****PHP偽html文件解析**
*
為了安全性或是其他原因,常常看到許
多網站的 URL 將實際檔案的路徑
隱藏起來,比如說下方的
URL 我們就看不出該網頁是用什麼
程式寫的,PHP 或是 ASP?
http://www.blogger.com/
post-create.g?blogID=27977601
舉個簡單的例子,如果我們想把網
址中的副檔名 .php 改成 .htm 或 .html。
在瀏覽器開啟 http://localhost/
test.html 實際上是連到
http://localhost/test.php
實作步驟如下:
檢察 apahcehttpd.conf 這一行
是否開啟 : 一般虛擬空間(主機)或vpn、
vps主機空間預設開啟了
LoadModule rewrite_module modules/mod_rewrite.so
在你要改寫 URL 的檔案資料夾中,
放入一個檔案取名為 .htaccess,
寫入以下內容,
這樣就算是完成了,不必重新
啟動伺服器(服務器)。
.htaccess文件內容如下︰
RewriteEngine on
RewriteBase /
RewriteRule ^index.html index.php
RewriteRule ^header.html header.php
RewriteRule ^footer.html footer.php
RewriteRule ^sitemap.html sitemap.php

也可以寫成這樣︰
RewriteEngine on
RewriteBase /
RewriteRule ^(.*)\.htm$ $1.php [nc]
RewriteRule ^(header.html)\.

htm$ $1 header.php [nc]
RewriteRule ^(footer)\.

htm$ $1 footer.php [nc]
RewriteRule ^(sitemap)\.

htm$ $1 sitemap.php [nc]
使用ftp軟體,上傳文件到伺服器(服務器)
,現在在瀏覽器打開嘗試一下,例如︰http://www.xxx.
com/sitemap.html
RewriteRule 這行的語法就是源自於
 Perl 的 Regular Expression (正規表達式),在 PHP 和
Javascript 也常常用到。
$1 表示使用 RewriteRule 的第一個
Regular Expression (是否就是指 ^(.*)\.htm$ 這段?)
[nc] 代表 not case sensitive
 (大小寫視為相同)
——————————
還有其他比較複雜的範例 ,如果你也像
我一樣不熟悉正規表達式,可以直接拿
這些例子修改 :
1) 網址 product-12.html => 實際
路徑 product.php?id=12
RewriteEngine on
RewriteBase /
RewriteRule ^product-([0-9]+)\.html$

 product.php?id=$1
2) 網址 product/ipod-nano/
12.html => 實際路徑 product.php?id=12
RewriteEngine on
RewriteBase /
RewriteRule ^product/([a-zA-Z0-9_-]+)

/([0-9]+)\.html$ product.php?id=$2
3) 把不含 www 的 URL 加上
www (http://test.com/ => http://www.test.com/)
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST}

^optimaxwebsolutions\.com$
RewriteRule (.*) http://

www.optimaxwebsolutions.com/$1 [R=301,L]
4) 網址 yoursite.com/xyz => 實際路徑 yoursite.com/user.php?username=xyz
RewriteEngine On
RewriteBase /
RewriteRule ^([a-zA-Z0-9_-]+)$

user.php?username=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$

user.php?username=$1
5) 把某個資料夾的路徑,改連到另一個
資料夾底下
假設你要翻新整個網站 root 資料夾中的
內容,你可以先在 root 資料夾的裡面
開一個 new 資料夾,
在 root/new 裡面編輯新的網頁。
然後使用以下的
rewrite rule 把 http://root/ 指向
 http://root/new/
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^test\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.test\.com$
RewriteCond %{REQUEST_URI} !^/new/
RewriteRule (.*) /new/$1

注意︰RewriteBase / 為根目錄,如果程
序放在二級目錄(子目錄)下,例如︰二級
目錄(子目錄)為"new“名稱,請修改為
RewriteBase /new
 
   
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

沒有留言:

張貼留言


if you like make fds, wellcome you here~~anytime***

my free place for everyones who want the good software,

come & download them~ wellcome!!