Windows XP Windows 7 Windows 2003 Windows Vista Windows教程綜合 Linux 系統教程
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟件教程
 Windows教程網 >> 電腦軟件教程 >> 服務器技術 >> 關於服務器 >> htaccess轉換httpd.ini的方法

htaccess轉換httpd.ini的方法

日期:2017/2/8 10:15:39      編輯:關於服務器

從apache轉到iis下,碰到.htacess轉換httpd.ini的問題,經過摸索得出以下

結論大家可以試試,不一定對。 先來看.htacess中源代碼

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.45it.net$
RewriteRule ^(.*)$ http://www.45it.net/$1 [R=301,L,NC]
RewriteBase /

RewriteRule ^([^-/\.\_\-]+)\.html$ $1.php?
RewriteRule ^([^-/\.\_\-]+)-op([^-/]+)-sor([^-/]+)-det([^-/]+)\.html$$1.php?op=$2&sor=$3&det=$4
RewriteRule ^([^-/\.\_\-]+)-op([^-/]+)-sor([^-/]+)\.html$ $1.php?op=$2&sor=$3
RewriteRule ^([^-/\.\_\-]+)-sor([^-/]+)\.html$ $1.php?sor=$2
RewriteRule ^([^-/\.\_\-]+)-op([^-/]+)\.html$ $1.php?op=$2
RewriteRule ^([^-/\.\_\-]+)-page([^-/]+)\.html$ $1.php?page=$2
RewriteRule ^([^-/\.\_\-]+)-op([^-/]+)-sor([^-/]+)-page([^-/]+)\.html$$1.php?op=$2&sor=$3&page=$4

接下來看轉換後http.ini的寫法

[ISAPI_Rewrite]
RewriteRule /([^-/\.\_\-]+)\.html$ /$1.php?
RewriteRule /([^-/\.\_\-]+)-op([^-/]+)-sor([^-/]+)-det([^-/]+)\.html$/$1.php?op=$2&sor=$3&det=$4
RewriteRule /([^-/\.\_\-]+)-op([^-/]+)-sor([^-/]+)\.html$ /$1.php?op=$2&sor=$3
RewriteRule /([^-/\.\_\-]+)-sor([^-/]+)\.html$ /$1.php?sor=$2
RewriteRule /([^-/\.\_\-]+)-op([^-/]+)\.html$ /$1.php?op=$2
RewriteRule /([^-/\.\_\-]+)-page([^-/]+)\.html$ /$1.php?page=$2
RewriteRule /([^-/\.\_\-]+)-op([^-/]+)-sor([^-/]+)-page([^-/]+)\.html$/$1.php?op=$2&sor=$3&page=$4

在.htacess轉換httpd.ini轉換結果匯中大家明顯看到我們做了修改的幾個地方

有顏色的部分就是修改過的,在.htacess轉換httpd.ini轉換中就是要讓apache和iis理解我們想要它做什麼

上面代碼不難看出:

首先是對規則的定義要變,從rewrite_module變成isapi_rewrite 其次是路徑要變,.htacess的路徑是定義在頭部中,而httpd.ini是定義在每行規則裡,.htacess轉換httpd.ini轉 換時將.htacess中^符號換成/,在獨立頁面前面加上路徑/,以我自己理解這個/應該是相對目錄的根目錄。

Copyright © Windows教程網 All Rights Reserved