Web.Config大全 - 在線即時轉換- apache .htaccess 轉成IIS Web.Config


甚麼是web.config?淺談web.config


傳統ASP的時代中,只要是關係到程式面(application layer)所設定的,則必須直接進入IIS來做設定,
例如錯誤頁面的導向,但到了ASP.NET,就可直接使用web.config這種XML格式的設定檔來做控制,
它可以針對單一網站或單一網路程式來儲存程式面上的設定, 最大的好處就是當無法使用遠端操作IIS時,也可以藉由上傳web.config檔來改變目前網站程式的設定,現在這些設定都可以輕鬆在web.cong中來定義,並將此web.config檔上傳 到正確的目錄,就可完成設定,也無需重新啟動IIS,而且所有網頁,子層都會按照web.config的規則來運作。 

.htaccess範例:
RewriteRule ^index.html$ http://webgolds.com/ [R=301,L] 

轉成IIS的Web.config:
<rule name="rule 1G" stopProcessing="true">
  <match url="^index.html$"  />
  <action type="Rewrite" url="/http://webgolds.com/"  />
</rule>


常見的 WordPress IIS Web.config
<rewrite>
 <rules>
     <rule name="Main Rule" stopProcessing="true">
         <match url=".*" />
         <conditions logicalGrouping="MatchAll">
             <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
             <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
         </conditions>
         <action type="Rewrite" url="index.php/{R:0}" />
     </rule>
 </rules>
</rewrite>
 

常見的 Magento IIS Web.config

<rule name="Imported Rule 1" stopProcessing="true">
  <match url=".*" ignoreCase="false" />
  <conditions>
    <add input="{URL}" pattern="^/(media|skin|js)/" ignoreCase="false" negate="true" />
    <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
  </conditions>
  <action type="Rewrite" url="index.php" />
</rule>

網址: http://cbsa.com.br/tools/online-convert-htaccess-to-web-config.aspx#result

 

簡易的Web.config參考

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <directoryBrowse enabled="false" />
        <rewrite>
            <rules>
                <rule name="RemoveTrailingSlashRule" stopProcessing="true">
                    <match url="(.*)/$" />
                    <conditions>
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                    </conditions>
                    <action type="Redirect" url="{R:1}" />
                </rule>
            </rules>
        </rewrite>
        <security>
            <ipSecurity allowUnlisted="true">
                <clear />
            </ipSecurity>
        </security>
    </system.webServer>
</configuration>

------
Web.config的最頂層的tag為<configuration>,在<configuration>可含不同符合XML格式的標籤(tag)。

<directoryBrowse enabled="false" />
不啟用目錄瀏覽。
HTTP 錯誤 403.14 - Forbidden
網頁伺服器已設為不列出此目錄的內容。

<rewrite></rewrite>
產生具親和力的網址

<rule name="RemoveTrailingSlashRule" stopProcessing="true">
可以把"abc.aspx/" 導引成 "abc.aspx"

<ipSecurity allowUnlisted="true">
可以用來限制網站的訪問,客戶端的IP地址。

Web.Config權威
 

路由重寫範例

列出全新品路由重寫
https://google.com/webgolds.com/product/new/male

實際執行路徑
product.php?categoryid=male&list=new

商品路由重寫
https://google.com/webgolds.com/product/category/male
https://google.com/webgolds.com/product/category/female
https://google.com/webgolds.com/m/product/category/female
實際執行路徑
product.php?categoryid=male
product.php?categoryid=female
m/product.php?categoryid=female
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <directoryBrowse enabled="false" />
        <rewrite>
            <rules>
                <rule name="(手機板+)一般列出全新品路由重寫">
                    <match url="(m\/)?product/new/([a-z0-9-_]+)" />
                    <action type="Rewrite" url="{R:1}product.php?categoryid={R:2}&list=new" />
                </rule>
                <rule name="(手機板+)一般商品路由重寫" stopProcessing="false">
                    <match url="(m\/)?product/category(/[a-z0-9-_]+)((?:/[a-z0-9-_]+)?)((?:/[a-z0-9-_]+)?)" />
                    <action type="Rewrite" url="{R:1}product.php?categoryid={R:2}&categoryid2={R:3}&categoryid3={R:4}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>


 

回上一頁

相關文章:

喜歡這篇文章嗎?立即分享

Posted : / Views: 2735
Last updated :2017-10-17