2014-07-20
IIS6:(iis6主机请联系主机商修改规则,部分主机支持httpd.ini,请将下列代码保存为httpd.ini或者下载附件中的httpd.ini上传到博客根目录)
  1. [ISAPI_Rewrite]
  2. # 3600 = 1 hour
  3. CacheClockRate 3600
  4. RepeatLimit 32
  5. RewriteRule /robots.txt(.*) /robots.txt$1 [L]
  6. RewriteRule /rss.php(.*) /rss.php$1 [L]
  7. RewriteRule /tb.php(.*) /tb.php$1 [L]
  8. RewriteRule /favicon.ico /favicon.ico [L]
  9. RewriteRule /xmlrpc.php(.*) /xmlrpc.php$1 [L] 
  10. RewriteRule /wlwmanifest.xml /wlwmanifest.xml [L] 
  11. RewriteRule /(t|m)$ /$1/ [R]
  12. RewriteRule /(admin|content|include|t|m)/(.*) /$1/$2 [L]
  13. RewriteRule /install.php(.*) /install.php$1 [L]
  14. RewriteRule /emlog_toolkit.php(.*) /emlog_toolkit.php$1 [L]
  15. RewriteRule /up(\d.\d.\d)to(\d.\d.\d).php(.*) /up$1to$2.php$3 [L]
  16. RewriteRule ^/$ /index.php [L]
  17. RewriteRule /(.*) /index.php/$1 [L]

支持.htaccess的IIS6服务器规则:
  1. RewriteEngine on
  2. RewriteBase /
  3. RewriteCond %{REQUEST_FILENAME} !-f
  4. RewriteCond %{REQUEST_FILENAME} !-d
  5. RewriteRule .* index.php/$0 [L]




【注】关于IIS6规则说明:由于IIS6不支持.htaccess的一些判断规则,因此只能事先处理一些会被正常访问的目录或者文件。有些地方可能需要做修改:
1、如果你有其他非emlog文件,因为添加如上规则而不能正常访问,要想使它们能正常访问的,则添加一条规则在第5行后面,参考第五行
  1. RewriteRule /rss.php(.*) /rss.php$1 [L]

将rss.php修改为你要访问的文件即可
如果你有其他非emlog目录,因为添加如上规则而不能正常访问,要想使它们能正常访问的,则参考第10、11行,将目录添加进来(用|隔开目录):
  1. RewriteRule /(t|m|admin)$ /$1/ [R] 
  2. RewriteRule /(admin|content|include|t|m)/(.*) /$1/$2 [L]

2、如果你的博客在子目录,那么需要将所有目录都改为子目录的,比如你的博客在emlog目录下,那么规则如下:
  1. [ISAPI_Rewrite]
  2. # 3600 = 1 hour
  3. CacheClockRate 3600
  4. RepeatLimit 32
  5. RewriteRule /emlog/rss.php(.*) /emlog/rss.php$1 [L]
  6. RewriteRule /emlog/tb.php(.*) /emlog/tb.php$1 [L]
  7. RewriteRule /emlog/favicon.ico /emlog/favicon.ico [L]
  8. RewriteRule /emlog/xmlrpc.php(.*) /emlog/xmlrpc.php$1 [L] 
  9. RewriteRule /emlog/wlwmanifest.xml /emlog/wlwmanifest.xml [L] 
  10. RewriteRule /emlog/(t|m)$ /emlog/$1/ [R]
  11. RewriteRule /emlog/(admin|content|include|t|m)/(.*) /emlog/$1/$2 [L]
  12. RewriteRule /emlog/install.php(.*) /emlog/install.php$1 [L]
  13. RewriteRule /emlog/emlog_toolkit.php(.*) /emlog/emlog_toolkit.php$1 [L]
  14. RewriteRule /emlog/up(\d.\d.\d)to(\d.\d.\d).php(.*) /emlog/up$1to$2.php$3 [L]
  15. RewriteRule ^/emlog/$ /emlog/index.php [L]
  16. RewriteRule /emlog/(.*) /emlog/index.php/$1 [L]

nginx:(nginx主机请联系主机商更改规则,部分主机可能支持自定义规则)
  1. location / {
  2.         index index.php index.html;
  3.         if (!-e $request_filename)
  4.         {
  5.                 rewrite ^/(.+)$ /index.php last;
  6.         }
  7. }


IIS7/7.5 规则
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration>
  3.     <system.webServer>
  4.         <rewrite>
  5.             <rules>
  6.                 <rule name="emlog 4.0.1 for IIS7.5" stopProcessing="true">
  7.                     <match url="." ignoreCase="false" />
  8.                     <conditions logicalGrouping="MatchAll">
  9.                         <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
  10.                         <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
  11.                     </conditions>
  12.                     <action type="Rewrite" url="/index.php" />
  13.                 </rule>
  14.             </rules>
  15.         </rewrite>
  16.     </system.webServer>
  17. </configuration>