三种伪静态配置文件的转换
一、web.config 主要应用在iis7/iis7.5的服务器上,编写规则的时候 注意 问号的使用,如 经常用到的 .*? 规则,到里面只能写成 .* 这块是需要注意的地方
二、httpd.ini 主要应用在iis以及iis6 的服务器上,跟.htaccess的规则比较接近,部分情况下需要区别 RewriteRule 的大小写,
跳转的部分需要用转义符转换url地址,如 /jourmy/go.php?act=xx&m=xx 需要写成/jourmy/go.php?act=xx&m=xx
三、.htaccess 主要应用在apache的服务器上,linux服务器时需要注意大小写 ,书写规则跟httpd.ini 比较接近
同一规则三种配置的书写规则:
web.config书写规则
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="rule1"> <match url="(/?html/.*)" ignoreCase="true" /> <action type="Rewrite" url="/gourl.php?url={R:1}" appendQueryString="true" /> </rule> <rule name="rule2"> <match url="(/?list/cate/.*)" ignoreCase="true" /> <action type="Rewrite" url="/gourl.php?url={R:1}" appendQueryString="true" /> </rule> <rule name="rule3"> <match url="(/?news/detail/.*)" ignoreCase="true" /> <action type="Rewrite" url="/gourl.php?url={R:1}" appendQueryString="true" /> </rule> <rule name="rule4"> <match url="(/?jourmy/cn/html/.*)" ignoreCase="true" /> <action type="Rewrite" url="/gourl.php?url={R:1}" appendQueryString="true" /> </rule> </rules> </rewrite> </system.webServer> </configuration>
httpd.ini 书写规则
[ISAPI_Rewrite] # 3600 = 1 hour CacheClockRate 3600 RepeatLimit 32 RewriteRule ^(/?html/.*?)$ /gourl.php?url=$1 [L] RewriteRule ^(/?list/cate/.*?)$ /gourl.php?url=$1 [L] RewriteRule ^(/?news/detail/.*?)$ /gourl.php?url=$1 [L]
.htaccess 书写规则
RewriteEngine on RewriteRule ^(/?html/.*?)$ /gourl.php?url=$1 [L] RewriteRule ^(/?list/cate/.*?)$ /gourl.php?url=$1 [L] RewriteRule ^(/?news/detail/.*?)$ /gourl.php?url=$1 [L] RewriteRule ^(/?jourmy/cn/html/.*?)$ /gourl.php?url=$1 [L]