PbootCms内页打不开的常见情况汇总

前言

最近看打后台记录,有同学遇到PbootCms内页无法正常访问的情况。包括但不限于:

1、点任何链接都跳转到首页

2、内页访问报错。

出现这些问题80%都是伪静态没搞对。

解决方案

最简单粗暴的方案就是关闭伪静态,使用兼容模式,操作如下:

PbootCms内页打不开的常见情况汇总插图

如果需要使用伪静态,那么首先看下你的服务器环境是,IIS,还是Apache,或者Nginx。

1、IIS7+环境(IIS6的环境自行百度):

1)安装rewrite组件,如果使用空间一般空间商默认已经安装; 

2)到后台配置参数中开启伪静态开关; 

3)在站点目录建立web.config文件(可到源码包rewrite目录下拷贝规则),规则内容如下:

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

2、Apache环境

1)开启Apache重写模块,具体请百度,如果使用空间一般空间商默认已经开启;

2)到后台配置参数中开启伪静态开关;

3)在站点目录建立.htaccess文件(可到源码包rewrite目录下拷贝规则),规则内容如下:

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

3、Nginx环境

1、到后台配置参数中开启伪静态;

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

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