我需要在Microsoft-IIS / 7.5服务器上设置一个简单的网站。我之前从未这样做过,所以我搜索了一些web.config片段。我对服务器的了解不多,但据我所知,IIS可以与web.config配合使用,而Apache可以使用.htaccess。如果我错了,请纠正我。
这是我提出的web.config:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll"/>
<dynamicTypes>
<add mimeType="text/*" enabled="true"/>
<add mimeType="message/*" enabled="true"/>
<add mimeType="application/javascript" enabled="true"/>
<add mimeType="*/*" enabled="false"/>
</dynamicTypes>
<staticTypes>
<add mimeType="text/*" enabled="true"/>
<add mimeType="message/*" enabled="true"/>
<add mimeType="application/javascript" enabled="true"/>
<add mimeType="*/*" enabled="false"/>
</staticTypes>
</httpCompression>
<urlCompression doStaticCompression="true" doDynamicCompression="true"/>
<caching enabled="true" enableKernelCache="true">
<profiles>
<add extension=".asp" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" />
</profiles>
</caching>
<rewrite>
<rules>
<rule name="SEO - Remove .html" stopProcessing="false">
<match url="^(.*).html$" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Redirect" url="{R:1}/" />
</rule>
<rule name="SEO">
<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="{R:1}.html" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
我想要做的就是启用gzip压缩,缓存文件并删除“.html”结尾。如果同一个文件夹中没有.htaccess,则Gzipping和缓存不会仍然无效:
# CACHING
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType text/html "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 1 month"
# GZIP
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
使用这个.htaccess它可以工作,但这让我感到困惑,因为我认为IIS服务器需要一个.htaccess的web.config INSTEAD?只是.htaccess文件也不起作用。有人可以向我解释一下这种行为吗?
2.。)虽然上面的工作或多或少,但我无法弄清楚如何压缩.svg文件。我试图上传.svgz文件而不是.svg文件,但这也没有用(没有显示)。有没有办法压缩.svg文件或支持.svgz文件与IIS服务器?
提前感谢您的帮助。
答案 0 :(得分:1)
我正在调查.htaccess的内容如何与IIS相关,我发现了Translate .htaccess Content to IIS web.config
这篇文章这可能对您有用。