伪静态配置 | Pseudo-static configuration

舒彬琪编辑于2019-09-2170 人浏览52 人点赞

伪静态配置

标签作用:配置程序伪静态后URL中将不再包含index.php,整个地址更美观

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

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

2)到后台配置参数中开启伪静态开关(老版本直接修改程序config/config.php文件url_type=2);

3)在站点目录建立web.config文件(老版本根目录下默认已有,去除后缀bak即可,新版本到rewrite目录下拷贝规则),手动建立的话规则如下:

<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>

2、Apache环境

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

2)到后台配置参数中开启伪静态开关(老版本直接修改程序config/config.php文件url_type=2);

3)在站点目录建立.htaccess文件(老版本根目录下默认已有,新版本到rewrite目录下拷贝规则),内容如下:

<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>

注意:PbootCMS工具对官方的Apache环境错误语句进行了修正!

2、Nginx环境

1、到后台配置参数中开启伪静态(老版本直接修改程序config/config.php文件url_type=2);

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

location / {

  if (!-e $request_filename){

    rewrite ^/(.*)$ /index.php/$1 last;

  }

}

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

3、在PbootCMS V2.0中 宝塔面板伪静态配置语句

location / {
	if (!-e $request_filename){
		rewrite  ^(.*)$  /index.php?s=$1  last;   break;
	}
}

附: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;

}


 阅 70