destoon之URL Rewrite(伪静态)设置方法详解

5年以前  |  阅读数:453 次  |  编程语言:PHP 

1、如果您的服务器支持.htaccess,则无需设置,网站根目录下的.htaccess已经设置好规则。
规则(参考http://download.destoon.com/rewrite/htaccess.txt)为:


    # Destoon B2B Rewrite Rules
    ErrorDocument 404 /404.php
    RewriteEngine On
    RewriteBase /
    RewriteRule ^(.*)\.(asp|aspx|asa|asax|dll|jsp|cgi|fcgi|pl)(.*)$ /404.php
    RewriteRule ^(.*)/file/(.*)\.php(.*)$ /404.php
    RewriteRule ^(.*)-htm-(.*)$ $1.php?$2
    RewriteRule ^(.*)/show-([0-9]+)([\-])?([0-9]+)?\.html$ $1/show.php?itemid=$2&page;=$4
    RewriteRule ^(.*)/list-([0-9]+)([\-])?([0-9]+)?\.html$ $1/list.php?catid=$2&page;=$4
    RewriteRule ^(.*)/show/([0-9]+)/([0-9]+)?([/])?$ $1/show.php?itemid=$2&page;=$3
    RewriteRule ^(.*)/list/([0-9]+)/([0-9]+)?([/])?$ $1/list.php?catid=$2&page;=$3
    RewriteRule ^(.*)/([A-za-z0-9_\-]+)-c([0-9]+)-([0-9]+)\.html$ $1/list.php?catid=$3&page;=$4
    RewriteRule ^(.*)/([a-z]+)/(.*)\.shtml$ $1/$2/index.php?rewrite=$3
    RewriteRule ^(com)/([a-z0-9_\-]+)/([a-z]+)/(.*)\.html$ index.php?homepage=$2&file;=$3&rewrite;=$4
    RewriteRule ^(com)/([a-z0-9_\-]+)/([a-z]+)([/])?$ index.php?homepage=$2&file;=$3
    RewriteRule ^(com)/([a-z0-9_\-]+)([/])?$ index.php?homepage=$2

2、如果是Apache服务器

Apache 1.x 的用户请检查 conf/httpd.conf 中是否存在如下两段代码:


    LoadModule rewrite_module  libexec/mod_rewrite.so
    AddModule mod_rewrite.c

Apache 2.x 的用户请检查 conf/httpd.conf 中是否存在如下一段代码:


    LoadModule rewrite_module  modules/mod_rewrite.so

如果存在,且以#开头,请删除#。然后在配置文件(通常就是 conf/httpd.conf或者conf/extra/httpd-vhosts.conf)中加入如下代码。
此时请务必注意,如果网站使用通过虚拟主机来定义,请务必加到虚拟主机配置,即中去,如果加在虚拟主机配置外部将可能无法使用。改好后然后将 Apache 重启。

Apache conf文件配置(参考http://download.destoon.com/rewrite/apache.txt)规则:


    # Destoon B2B Rewrite Rules
    ErrorDocument 404 /404.php
    RewriteEngine On
    RewriteBase /
    RewriteRule ^(.*)\.(asp|aspx|asa|asax|dll|jsp|cgi|fcgi|pl)(.*)$ /404.php
    RewriteRule ^(.*)/file/(.*)\.php(.*)$ /404.php
    RewriteRule ^(.*)-htm-(.*)$ $1.php?$2
    RewriteRule ^(.*)/show-([0-9]+)([\-])?([0-9]+)?\.html$ $1/show.php?itemid=$2&page;=$4
    RewriteRule ^(.*)/list-([0-9]+)([\-])?([0-9]+)?\.html$ $1/list.php?catid=$2&page;=$4
    RewriteRule ^(.*)/show/([0-9]+)/([0-9]+)?([/])?$ $1/show.php?itemid=$2&page;=$3
    RewriteRule ^(.*)/list/([0-9]+)/([0-9]+)?([/])?$ $1/list.php?catid=$2&page;=$3
    RewriteRule ^(.*)/([A-za-z0-9_\-]+)-c([0-9]+)-([0-9]+)\.html$ $1/list.php?catid=$3&page;=$4
    RewriteRule ^(.*)/([a-z]+)/(.*)\.shtml$ $1/$2/index.php?rewrite=$3
    RewriteRule ^(.*)/com/([a-z0-9_\-]+)/([a-z]+)/(.*)\.html$ $1/index.php?homepage=$2&file;=$3&rewrite;=$4
    RewriteRule ^(.*)/com/([a-z0-9_\-]+)/([a-z]+)([/])?$ $1/index.php?homepage=$2&file;=$3
    RewriteRule ^(.*)/com/([a-z0-9_\-]+)([/])?$ $1/index.php?homepage=$2

3、Nginx规则(参考http://download.destoon.com/rewrite/nginx.txt):


    rewrite ^/(.*)\.(asp|aspx|asa|asax|dll|jsp|cgi|fcgi|pl)(.*)$ /404.php last;
    rewrite ^/(.*)/file/(.*)\.php(.*)$ /404.php last;
    rewrite ^/(.*)-htm-(.*)$ /$1.php?$2 last;
    rewrite ^/(.*)/show-([0-9]+)([\-])?([0-9]+)?\.html$ /$1/show.php?itemid=$2&page;=$4 last;
    rewrite ^/(.*)/list-([0-9]+)([\-])?([0-9]+)?\.html$ /$1/list.php?catid=$2&page;=$4 last;
    rewrite ^/(.*)/show/([0-9]+)/([0-9]+)?([/])?$ /$1/show.php?itemid=$2&page;=$3 last;
    rewrite ^/(.*)/list/([0-9]+)/([0-9]+)?([/])?$ /$1/list.php?catid=$2&page;=$3 last;
    rewrite ^/(.*)/([A-za-z0-9_\-]+)-c([0-9]+)-([0-9]+)\.html$ /$1/list.php?catid=$3&page;=$4 last;
    rewrite ^(.*)/([a-z]+)/(.*)\.shtml$ $1/$2/index.php?rewrite=$3 last;
    rewrite ^/(com)/([a-z0-9_\-]+)/([a-z]+)/(.*)\.html$ /index.php?homepage=$2&file;=$3&rewrite;=$4 last;
    rewrite ^/(com)/([a-z0-9_\-]+)/([a-z]+)([/])?$ /index.php?homepage=$2&file;=$3 last;
    rewrite ^/(com)/([a-z0-9_\-]+)([/])?$ /index.php?homepage=$2 last;

4、Zeus规则(参考http://download.destoon.com/rewrite/zeus.txt):


    match URL into $ with ^(.*)\.(asp|aspx|asa|asax|dll|jsp|cgi|fcgi|pl)(.*)$ 
    if matched then 
     set URL = /404.php
    endif
    match URL into $ with ^(.*)/file/(.*)\.php(.*)$ 
    if matched then 
     set URL = /404.php
    endif
    match URL into $ with ^(.*)-htm-(.*)$ 
    if matched then 
     set URL = $1.php?$2 
    endif
    match URL into $ with ^(.*)/show-([0-9]+)([\-])?([0-9]+)?\.html$ 
    if matched then 
     set URL = $1/show.php?itemid=$2&page;=$4 
    endif
    match URL into $ with ^(.*)/list-([0-9]+)([\-])?([0-9]+)?\.html$ 
    if matched then 
     set URL = $1/list.php?catid=$2&page;=$4 
    endif
    match URL into $ with ^(.*)/show/([0-9]+)/([0-9]+)?([/])?$ 
    if matched then 
     set URL = $1/show.php?itemid=$2&page;=$3 
    endif
    match URL into $ with ^(.*)/list/([0-9]+)/([0-9]+)?([/])?$ 
    if matched then 
     set URL = $1/list.php?catid=$2&page;=$3 
    endif
    match URL into $ with ^(.*)/([A-za-z0-9_\-]+)-c([0-9]+)-([0-9]+)\.html$
    if matched then 
     set URL = $1/list.php?catid=$3&page;=$4
    endif
    match URL into $ with ^(.*)/([a-z]+)/(.*)\.shtml$ 
    if matched then 
     set URL = $1/$2/index.php?rewrite=$3 
    endif
    match URL into $ with ^(.*)/com/([a-z0-9_\-]+)/([a-z]+)/(.*)\.html$ 
    if matched then 
     set URL = $1/index.php?homepage=$2&file;=$3&rewrite;=$4 
    endif
    match URL into $ with ^(.*)/com/([a-z0-9_\-]+)/([a-z]+)([/])?$ 
    if matched then 
     set URL = $1/index.php?homepage=$2&file;=$3 
    endif
    match URL into $ with ^(.*)/com/([a-z0-9_\-]+)([/])?$ 
    if matched then 
     set URL = $1/index.php?homepage=$2 
    endif

5、IIS6服务器

请下载 http://download.destoon.com/rewrite/IIS_Rewrite.zip
规则已经设置好,按readme.txt文件内容进行操作
如果网站支持httpd.ini文件,请使用如下规则(参考http://download.destoon.com/rewrite/httpd.ini):


    [ISAPI_Rewrite]
    # Destoon B2B www.destoon.com
    # 3600 = 1 hour
    CacheClockRate 3600

    RepeatLimit 32

    # Protect httpd.ini and httpd.parse.errors files
    # from accessing through HTTP
    RewriteRule ^(.*)\.(asp|aspx|asa|asax|dll|jsp|cgi|fcgi|pl)(.*)$ /404\.php
    RewriteRule ^(.*)/file/(.*)\.php(.*)$ /404\.php
    RewriteRule ^(.*)-htm-(.*)$ $1\.php\?$2
    RewriteRule ^(.*)/show-([0-9]+)([\-])?([0-9]+)?\.html$ $1/show\.php\?itemid=$2&page;=$4
    RewriteRule ^(.*)/list-([0-9]+)([\-])?([0-9]+)?\.html$ $1/list\.php\?catid=$2&page;=$4
    RewriteRule ^(.*)/show/([0-9]+)/([0-9]+)?([/])?$ $1/show\.php\?itemid=$2&page;=$3
    RewriteRule ^(.*)/list/([0-9]+)/([0-9]+)?([/])?$ $1/list\.php\?catid=$2&page;=$3
    RewriteRule ^(.*)/([A-za-z0-9_\-]+)-c([0-9]+)-([0-9]+)\.html$ $1/list\.php\?catid=$3&page;=$4
    RewriteRule ^(.*)/com/([a-z0-9_\-]+)/([a-z]+)/(.*)\.html$ $1/index\.php\?homepage=$2&file;=$3&rewrite;=$4
    RewriteRule ^(.*)/com/([a-z0-9_\-]+)/([a-z]+)([/])?$ $1/index\.php\?homepage=$2&file;=$3
    RewriteRule ^(.*)/com/([a-z0-9_\-]+)([/])?$ $1/index\.php\?homepage=$2
    RewriteRule ^(.*)/([a-z]+)/(.*)\.shtml$ $1/$2/index\.php\?rewrite=$3

6、IIS7服务器

规则(参考http://download.destoon.com/rewrite/web.config.txt)为:


    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
     <system.webServer>
        <rewrite>
       <rules>
        <rule name="destoon_rewrite_0">
          <match url="^(.*)\.(asp|aspx|asa|asax|dll|jsp|cgi|fcgi|pl)(.*)$" />
          <action type="Rewrite" url="/404.php" />
        </rule>
        <rule name="destoon_rewrite_1">
          <match url="^(.*)/file/(.*)\.php(.*)$" />
          <action type="Rewrite" url="/404.php" />
        </rule>
        <rule name="destoon_rewrite_2">
          <match url="^(.*)-htm-(.*)$" />
          <action type="Rewrite" url="{R:1}.php?{R:2}" />
        </rule>
         <rule name="destoon_rewrite_3">
         <match url="^(.*)/show-([0-9]+)([\-])?([0-9]+)?\.html$" />
         <action type="Rewrite" url="{R:1}/show.php?itemid={R:2}&page={R:4}" />
        </rule>
        <rule name="destoon_rewrite_4">
         <match url="^(.*)/list-([0-9]+)([\-])?([0-9]+)?\.html$" />
         <action type="Rewrite" url="{R:1}/list.php?catid={R:2}&page={R:4}" />
        </rule>
        <rule name="destoon_rewrite_5">
         <match url="^(.*)/show/([0-9]+)/([0-9]+)?([/])?$" />
         <action type="Rewrite" url="{R:1}/show.php?itemid={R:2}&page={R:3}" />
        </rule>
        <rule name="destoon_rewrite_6">
         <match url="^(.*)/list/([0-9]+)/([0-9]+)?([/])?$" />
         <action type="Rewrite" url="{R:1}/list.php?catid={R:2}&page={R:3}" />
        </rule>
        <rule name="destoon_rewrite_7">
         <match url="^(.*)/([A-za-z0-9_\-]+)-c([0-9]+)-([0-9]+)\.html$" />
         <action type="Rewrite" url="{R:1}/list.php?catid={R:3}&page={R:4}" />
        </rule>
        <rule name="destoon_rewrite_8">
         <match url="^(com)/([a-z0-9_\-]+)/([a-z]+)/(.*)\.html$" />
         <action type="Rewrite" url="index.php?homepage={R:2}&file={R:3}&rewrite={R:4}" />
        </rule>
        <rule name="destoon_rewrite_9">
         <match url="^(com)/([a-z0-9_\-]+)/([a-z]+)([/])?$" />
         <action type="Rewrite" url="index.php?homepage={R:2}&file={R:3}" />
        </rule>
        <rule name="destoon_rewrite_10">
         <match url="^(com)/([a-z0-9_\-]+)([/])?$" />
         <action type="Rewrite" url="index.php?homepage={R:2}" />
        </rule>
        <rule name="destoon_rewrite_11">
          <match url="^([a-z]+)/(.*)\.shtml$" />
          <action type="Rewrite" url="{R:1}/index.php?rewrite={R:2}" />
        </rule>
       </rules>
      </rewrite>        
     </system.webServer>
    </configuration>

Rewrite生效后,请在网站后台=》网站设置=》SEO优化=》URL Rewrite,选择"开启"提交

然后进入各模块的模块设置"SEO设置"选择对应伪静态地址规则

选择"更新地址"提交即可。

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例