“规则” 标签页面:

  • StatusNet在Nginx下的rewrite规则

    StatusNet在Nginx下的rewrite规则。假设StatusNet装在abc.creke.net的sn目录下,访问地址为abc.creke.net/sn/,则其在Nginx下的rewrite规则如下:

    #StatusNet
    location /sn
    {
            try_files $uri $uri/ @statusnet;
    }
    location @statusnet
    {
            rewrite ^/sn/(.*)$ /sn/index.php?p=$1 last;
    }

    将其放在“server{}”块中靠前位置即可。

    如果不启用fancy url,这时会发现登录页面404,因为类似“abc.creke.net/sn/index.php/main/login”这类地址nginx不认为是需要交到php处理的地址。这时有两种解决方法。

    第一种,最简单的就是在config.php中加上开启fancy url的语句,同时按照上面说的配好rewrite:

    $config['site']['fancy'] = true;

    第二种,就是将上面的rewrite中的rewrite规则换成:

    rewrite ^/sn/index\.php\(.*)$ /sn/index.php?p=$1 last;

    好吧,除了我,谁那么无聊用第二种啊……用第一种呗。

    2011.08.16 / 暂无评论 / 653 次点击 / 分类: 所谓技术

  • Blogger转移到WordPress的rewrite跳转规则

    Blogger转移到Wordpress的.htaccess的rewrite跳转规则。

    这是很久之前写的,一直没有整理出来。刚好今天博客搬家,整理一下发上来。

    这份代码可以吧blogger的相同月份的文章转移到wordpress对应的月份归档里,当然,无论如何是不能从blogger的具体文章跳转到wordpress的对应文章的,这是是最精确、最有利于SEO的做法。

    以下是.htaccess的rewrite代码:

    #BEGIN old blog
    <IfModule mod_rewrite.c>
      RewriteEngine On
      RewriteBase /
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      #post
      RewriteRule ^([0-9]{4})/([0-9]{2})/[A-Za-z0-9_-]+\.html$ /date/$1/$2 [R=301,L]
      #archive
      RewriteRule ^([0-9]{4})_([0-9]{2})_01_archive\.html$ /date/$1/$2 [R=301,L]
    </IfModule>
    #END old blog

    2010.12.12 / 2 条评论 / 699 次点击 / 分类: 所谓技术

  • Sharetronix在IIS下安装及ISAPI_Rewrite的httpd.ini规则

    首先我们得承认:Sharetronix安装程序会检测是不是Apache服务器,以及有没有mod_rewrite模块。如果是IIS而不是Apache,则会终止安装。这时候,我们可以修改安装文件的检测步骤来跳过这个检测。

    但有更简单的方法,就是在本地Apache环境下安装好Sharetronix,再上传安装好的目录及数据库。别忘了要更改配置文件conf_main.php来适应主机上的设置哦。

    怎么rewrite呢?这里以ISAPI_Rewrite的httpd.ini为例。IIS7已经可以转换.htaccess为web.config了,就不用这么麻烦。

    httpd.ini代码,假设程序安装在“sharetronix”目录下:

    [ISAPI_Rewrite]

    # 3600 = 1 hour
    CacheClockRate 3600

    RepeatLimit 32

    RewriteCond URL /sharetronix(?!/api/|/i/|/system/|/themes/|/uc_client/).*
    RewriteRule /sharetronix(.*) /sharetronix/_chineseuri.php?$1 [I]

    httpd.ini上传至相应文件夹,每个主机商都会不一样,这个自己要注意。

    然后把一下内容保存为“_chineseuri.php”,以“UTF-8 无BOM”格式保存。上传至sharetronix的安装目录。

    <?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']) && !empty($_SERVER['QUERY_STRING'])) {
    $_SERVER['REQUEST_URI'] .= '?' . $_SERVER['QUERY_STRING'];
    }
    }
    
    require("index.php");
    
    ?> 

    OK!Sharetronix在IIS下完美运作!

    下次将向大家介绍一些Sharetronix联合QQ机器人。现在我已经装了个预览版,可以在这里围观:http://t.lufie.net/sharetronix/

    2010.08.05 / 1 条评论 / 1,472 次点击 / 分类: 所谓技术

  • StatusNet在IIS下的Rewrite规则

    StatusNet在IIS下的Rewrite规则,其实跟WordPress的大致相同,大家也可以在IIS下转换.htaccess。不过这个StatusNet在IIS下有个问题,就是不能使用API。

    Rewrite规则如下:

    <configuration>   
      <system.webServer>   
        <rewrite>   
          <rules>  
            <rule name="StatusNet" patternSyntax="Wildcard">   
              <match url="*" />   
                <conditions>   
                  <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />   
                  <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />   
                </conditions>   
              <action type="Rewrite" url="index.php?p={R:1}" />   
            </rule>        
          </rules>   
        </rewrite>   
      </system.webServer>   
    </configuration>

    2010.06.05 / 暂无评论 / 502 次点击 / 分类: 所谓技术

  • Dabr在IIS7下的rewrite规则

    Dabr在IIS7的rewrite规则如下:

    <configuration>   
      <system.webServer>   
        <rewrite>   
          <rules>  
            <rule name="Dabr">   
              <match url="Dabr目录/(.*)" />   
                <conditions>   
                  <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />   
                  <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />   
                </conditions>   
              <action type="Rewrite" url="Dabr目录/index.php?q={R:1}" />   
            </rule>       
          </rules>   
        </rewrite>   
      </system.webServer>   
    </configuration>

    上面的“Dabr目录”请按需更改。如果装在根目录,则把“Dabr目录/”,包括后面的“/”也去掉即可。

    把上面内容保存为web.config保存至网站根目录即可。

    2010.05.14 / 暂无评论 / 519 次点击 / 分类: 所谓技术

  • IIS7依靠域名判断重定向的Rewrite规则

    IIS7依靠域名判断重定向的Rewrite规则

    下面贴一下Rewrite规则,作用是把所有非“blog.creke.net”的内容都301重定向到“blog.creke.net”:

    <configuration>
      <system.webServer>
        <rewrite>
          <rules>
            <rule name="Redirect Domain" stopProcessing="true">
              <match url="(.*)" />
              <conditions>
                <add input="{HTTP_HOST}" pattern="^blog\.creke\.net$" negate="true"/>
              </conditions>
              <action type="Redirect" url="http://blog.creke.net/{R:0}" redirectType="Permanent"/>
            </rule>
          </rules>
        </rewrite>
      </system.webServer>
    </configuration>

    其实和.htaccess差不多,只不过IIS的配置是xml语法。

    2010.05.13 / 暂无评论 / 911 次点击 / 分类: 所谓技术