2011-08-10 117 views
1

我對未來的.htaccess代碼,工作非常好的關於Apache翻譯的.htaccess到web.config中的IIS

RewriteEngine On 
RewriteBase /folder 

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

RewriteRule index.php.* - [L] 

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

RewriteRule ^(.*) index.php?id=$1 

但我需要與IIS服務器上運行英寸你能幫我翻譯一下IIS嗎?非常感謝。

回答

1

如果您使用的是IIS 7,則可以安裝由Microsoft提供的IIS的URL Rewrite擴展。該擴展還具有導入.htaccess文件的功能。有時,並非所有的行都可以傳送(參見下面的第二行代碼)。我們必須做一些調整。將導入對話框中「XML視圖」選項卡的結果複製並粘貼到文本編輯器中,並將其保存爲「web.config」文件。這是您的.htaccess轉換:

<rewrite> 
    <!--This directive was not converted because it is not supported by IIS: RewriteBase /folder.--> 
    <rules> 
    <rule name="Imported Rule 1" stopProcessing="true"> 
     <match url="index.php.*" ignoreCase="false" /> 
     <conditions> 
     <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" /> 
     <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" /> 
     </conditions> 
     <action type="None" /> 
    </rule> 
    <rule name="Imported Rule 2"> 
     <match url="^(.*)" ignoreCase="false" /> 
     <conditions> 
     <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" /> 
     <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" /> 
     </conditions> 
     <action type="Rewrite" url="index.php?id={R:1}" appendQueryString="false" /> 
    </rule> 
    </rules> 
</rewrite> 

注意:直接導入結果,尚未調整。