問題原因:
IIS6 URL重寫模塊沒有在重寫規(guī)則中提供對(duì)url是否為真實(shí)文件的判斷支持, 所以無(wú)論當(dāng)前訪問的url是否為真實(shí)文件或目錄都會(huì)被重寫到index.php,這就是為什么訪問文件會(huì)跳轉(zhuǎn)到博客首頁(yè)的原因,其他的服務(wù)器如 Apache、Nginx等在重寫模塊中都提供了判斷文件的接口,所以不會(huì)有這個(gè)問題
解決方案:
由于無(wú)法重寫模塊無(wú)法支持文件、文件夾判斷,所以我們只能手動(dòng)的在規(guī)則里面增加你需要訪問的文件和文件夾來(lái)達(dá)到讓其可以被訪問的目的。
下面我簡(jiǎn)單的講一下添加規(guī)則教程。
標(biāo)準(zhǔn)的IIS6重寫規(guī)則如下:
[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
RewriteRule /rss.php(.*) /rss.php$1 [L]
RewriteRule /tb.php(.*) /tb.php$1 [L]
RewriteRule /favicon.ico /favicon.ico [L]
RewriteRule /xmlrpc.php(.*) /xmlrpc.php$1 [L]
RewriteRule /wlwmanifest.xml /wlwmanifest.xml [L]
RewriteRule /(t|m)$ /$1/ [R]
RewriteRule /(admin|content|include|t|m)/(.*) /$1/$2 [L]
RewriteRule /install.php(.*) /install.php$1 [L]
RewriteRule /emlog_toolkit.php(.*) /emlog_toolkit.php$1 [L]
RewriteRule /up(d.d.d)to(d.d.d).php(.*) /up$1to$2.php$3 [L]
RewriteRule ^/$ /index.php [L]
RewriteRule /(.*) /index.php/$1 [L]
增加文件的規(guī)則很簡(jiǎn)單,格式為:
RewriteRule /(文件路徑) /(文件路徑) [L]
上面規(guī)則中的(文件或文件夾路徑)指的是從你網(wǎng)站根目錄算起的文件路徑,以sitemap.xml為例,web路徑為http://localhost/sitemap.xml,我們?cè)谝?guī)則中增加一條關(guān)于sitemap.xml的規(guī)則,
因?yàn)閟itemap在網(wǎng)站根目錄,那么規(guī)則應(yīng)該寫為:
RewriteRule /sitemap.xml /sitemap.xml [L]
增加文件夾的規(guī)則稍微復(fù)雜點(diǎn),格式為:
RewriteRule /(文件夾路徑)/(.*) /(文件夾路徑)/(.*) [L]
例如,我在博客空間里上傳了一個(gè)叫做photos的文件夾,web路徑為http://localhost/photos/,里面全部是圖片文件,那么把photo文件夾加入規(guī)則就應(yīng)該寫為:
RewriteRule /photos/(.*) /photos/(.*) [L]
另外需要注意一點(diǎn)的是你新添加的規(guī)則必須放在下面這兩條規(guī)則之前,否則規(guī)則是不會(huì)生效的
RewriteRule ^/$ /index.php [L]
RewriteRule /(.*) /index.php/$1 [L]
下面是一個(gè)完整的httpd.ini的內(nèi)容,添加了上面演示的兩條規(guī)則,這兩條規(guī)則已經(jīng)用紅色標(biāo)出,請(qǐng)注意它們的位置,請(qǐng)務(wù)必保證你新添加的規(guī)則在下面規(guī)則中標(biāo)識(shí)為綠色的規(guī)則之前
[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
RewriteRule /sitemap.xml /sitemap.xml [L]
RewriteRule /photos/(.*) /photos/(.*) [L]
RewriteRule /rss.php(.*) /rss.php$1 [L]
RewriteRule /tb.php(.*) /tb.php$1 [L]
RewriteRule /favicon.ico /favicon.ico [L]
RewriteRule /xmlrpc.php(.*) /xmlrpc.php$1 [L]
RewriteRule /wlwmanifest.xml /wlwmanifest.xml [L]
RewriteRule /(t|m)$ /$1/ [R]
RewriteRule /(admin|content|include|t|m)/(.*) /$1/$2 [L]
RewriteRule /install.php(.*) /install.php$1 [L]
RewriteRule /emlog_toolkit.php(.*) /emlog_toolkit.php$1 [L]
RewriteRule /up(d.d.d)to(d.d.d).php(.*) /up$1to$2.php$3 [L]
RewriteRule ^/$ /index.php [L]
RewriteRule /(.*) /index.php/$1 [L]
更多信息請(qǐng)查看IT技術(shù)專欄