PbootCMS伪静态规则

1、IIS7+环境

安装rewrite组件,在站点根目录建立web.config文件(源码包/rewrite目录下拷贝规则),规则内容如下:

#PbootCMS 1.X版本使用如下规则:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                 <rule name="reIndex" stopProcessing="true">
                    <match url="^(.*)$" ignoreCase="true" />
                    <conditions logicalGrouping="MatchAll">
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="index.php/{R:1}" appendQueryString="true" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

#PbootCMS 2.X+版本使用如下规则:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                 <rule name="reIndex" stopProcessing="true">
                    <match url="^(.*)$" ignoreCase="true" />
                    <conditions logicalGrouping="MatchAll">
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="index.php?p={R:1}" appendQueryString="true" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

rewrite组件下载:https://www.iis.net/downloads/microsoft/url-rewrite

2、Apache环境

开启Apache重写模块,在站点根目录建立.htaccess文件(源码包/rewrite目录下拷贝规则),规则内容如下:

#PbootCMS 1.X版本使用如下规则:
<IfModule mod_rewrite.c>
  Options +FollowSymlinks
  RewriteEngine On
  
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  
  #如果页面出现"No input file specified." 请注释第一条,启用第二条
  RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
  #RewriteRule ^(.*)$ index.php [E=PATH_INFO:$1,QSA,PT,L]    
</IfModule>

# PbootCMS2.X+版本使用如下规则:
<IfModule mod_rewrite.c>
  Options +FollowSymlinks
  RewriteEngine On
  
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  
  RewriteRule ^(.*)$ index.php?p=$1 [QSA,PT,L]
</IfModule>

3、Nginx环境

在nginx虚拟主机location配置中添加规则,规则如下:

#PbootCMS 1.X版本使用如下规则:
location / {
    if (!-e $request_filename){
        rewrite ^/(.*)$ /index.php/$1 last;
     }
}

#PbootCMS 2.X+版本使用如下规则:
location / {
    if (!-e $request_filename){
        rewrite ^/(.*)$ /index.php?p=$1 last;
     }
}

注意:Nginx中如果站点部署在二级目录,请对应修改重写规则, 如:二级目录为test则:rewrite ^/test/(.*)$ /test/index.php?p=$1 last;

附:nginx开启PHP及pathinfo支持的方法,在server内部添加如下内容:

location ~ .php(.*)$ {
    root           D:/wwwroot;    #你的网站目录,注意修改
    fastcgi_pass   127.0.0.1:9000;   #php-cgi监听地址
    fastcgi_index  index.php;    #默认页

    fastcgi_split_path_info ^(.+.php)(.*)$;    #分离路径
    fastcgi_param PATH_INFO       $fastcgi_path_info;  #添加PATH_INFO信息
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;

    include fastcgi_params;
}


评论: 0 | 引用: 0 | 查看次数: 105
发表评论
登录后再发表评论!