存档

文章标签 ‘iis7’

windows主机IIS7下 web.config设置301重定向

2011年3月31日 没有评论

linxu下配置301重定向非常简单,配置下.htaccess文件即可,很多主机面板还有图形化界面,比如cp面板。

iis7利用web.config配置起来相对麻烦点,发出来备忘

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>

        <rule name="www redirect" stopProcessing="true">
              <match url=".*" />
                 <conditions>
     <add input="{HTTP_HOST}" pattern="^zhaojiyu.com$" />
                 </conditions>
              <action type="Redirect" url="http://www.zhaojiyu.com/{R:0}"
                   redirectType="Permanent" />
          </rule>
    </rules>
    </rewrite>
  </system.webServer>
</configuration>

作用:把 不带www的 永久定向到 www.上

好处:权重集中,免遭搜索引擎惩罚。

不修改程序,完美解决Godaddy的windows主机IIS7上wordpress中文tag问题

2011年2月9日 没有评论

本人认为对于wordpress还是插件能不能则不用,代码能不改则不改。避免日后升级带来麻烦。。

这种方法只需要增加一个 PHP 文件,并修改一下 web.config 文件中的 Rewrite 规则即可,不需要修改程序文件。
新建一个“chineseurl.php”文件,内容如下:

<?php
// IIS Mod-Rewrite
if (isset($_SERVER['HTTP_X_ORIGINAL_URL'])) {
    $_SERVER['REQUEST_URI'] = $_SERVER['HTTP_X_ORIGINAL_URL'];
}
// IIS Isapi_Rewrite
else if (isset($_SERVER['HTTP_X_REWRITE_URL'])) {
    $_SERVER['REQUEST_URI'] = $_SERVER['HTTP_X_REWRITE_URL'];
}
else
{
    // Use ORIG_PATH_INFO if there is no PATH_INFO
    if (!isset($_SERVER['PATH_INFO']) && isset($_SERVER['ORIG_PATH_INFO']))
        $_SERVER['PATH_INFO'] = $_SERVER['ORIG_PATH_INFO'];

    // Some IIS + PHP configurations puts the script-name in the path-info (No need to append it twice)
    if (isset($_SERVER['PATH_INFO'])) {
        if ($_SERVER['PATH_INFO'] == $_SERVER['SCRIPT_NAME'])
            $_SERVER['REQUEST_URI'] = $_SERVER['PATH_INFO'];
        else
            $_SERVER['REQUEST_URI'] = $_SERVER['SCRIPT_NAME'] . $_SERVER['PATH_INFO'];
    }

    // Append the query string if it exists and isn't null
    if (isset($_SERVER['QUERY_STRING']) && !emptyempty($_SERVER['QUERY_STRING'])) {
        $_SERVER['REQUEST_URI'] .= '?' . $_SERVER['QUERY_STRING'];
    }
}
require("index.php");

?>

添加以下内容到 web.config 文件:

    <rule name="chineseurl" stopProcessing="true">
    <match url="^(tag|category)/(.*)$" />
    <action type="Rewrite" url="chineseurl.php"/>
    </rule>

注意要加在 <rule name="wordpress" patternSyntax="Wildcard"> 这行之前。

以上两个文件都存放在 WordPress 的安装目录。
如果 WordPress 不是装在根目录,则需要更改“<match url=”^(tag|category)/(.*)$” />”为“<match url=”^安装目录/(tag|category)/(.*)$” />”。如果是以archives\tag的永久链接方式,改成“<match url=”^archives/(tag|category)/(.*)$” />”

如果在固定链接设置里把默认的标签前缀和分类目录前缀(tag 和 category)改了,则更改这句里的对应内容即可。
此文适用于 WordPress 3.0.1以上版本,WordPress 3.0.5 亲测可用。

Godaddy主机iis7下discuz6.0伪静态web.config配置

2010年12月30日 没有评论

鼓捣了半天才鼓捣明白,共享出来给需要的朋友。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
 <rules>
        <rule name="archiver">
                    <match url="^archiver/((fid|tid)-[\w\-]+\.html)$" ignoreCase="false" />
                    <action type="Rewrite" url="archiver/index.php?{R:1}" appendQueryString="false" />
        </rule>

  <rule name="forum">
                    <match url="^forum-([0-9]+)-([0-9]+)\.html$" ignoreCase="false" />
                    <action type="Rewrite" url="forumdisplay.php?fid={R:1}&amp;page={R:2}" appendQueryString="false" />
  </rule>
  <rule name="viewthread">
                    <match url="^thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$" ignoreCase="false" />
                    <action type="Rewrite" url="viewthread.php?tid={R:1}&amp;extra=page\%3D{R:3}&amp;page={R:2}" appendQueryString="false" />
  </rule>
  <rule name="space">
                    <match url="^space-(username|uid)-(.+)\.html$" ignoreCase="false" />
                    <action type="Rewrite" url="space.php?{R:1}={R:2}" appendQueryString="false" />
  </rule>
  <rule name="tag">
                    <match url="^tag-(.+)\.html$" ignoreCase="false" />
                    <action type="Rewrite" url="tag.php?name={R:1}" appendQueryString="false" />
  </rule>
 </rules>
</rewrite>

<httpErrors errorMode="Detailed" />
<asp scriptErrorSentToBrowser="true" />
</system.webServer>
<system.web>
<customErrors mode="Off" />
<globalization requestEncoding="utf-8" responseEncoding="utf-8" fileEncoding="utf-8" />
</system.web>
</configuration>

上半部分是伪静态设置,下半部分是解决Godaddy的windows主机500错误问题的代码。

文件下载