apache伪静态.htaccess文件配置详解

2020-06-09  本文已影响0人  雨落流年

前言

apache 服务器发展已有多年,各大平台的虚拟主机大多都是以php,静态页面建站为主,所以大多也用的是apache来作为服务器应用,以阿里云为例,像http.conf配置文件就未给到用户自行修改配置。所以,虚拟主机的直接部署方便但也大大受限,不过好在伪静态这方面是默认开启的,那么我们就可以根据伪静态文件配置来做到一个虚拟主机同ip多个站点多域名配置

1. 参考目录,如下图

目录实例参考

2. 规则书写

网站根目录下的.htaccess配置

    <IfModule mod_rewrite.c>
      Options +FollowSymlinks -Multiviews
      RewriteEngine On
    
      RewriteCond %{HTTP_HOST} ^$ [NC]
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
    
      RewriteCond %{HTTP_HOST} ^www.zkycsj.com$ [NC]
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteRule ^(.*)$ /ks_project/public/$1 [QSA,PT,L]

      ErrorDocument 403  403配置页面或跳转链接
      ErrorDocument 404 404配置页面或跳转链接
      ErrorDocument 500 500配置页面或跳转链接
    </IfModule>

thinkphp的public文件夹下的.htaccess配置

<IfModule mod_rewrite.c>
  Options +FollowSymlinks -Multiviews
  RewriteEngine On

  RewriteCond %{HTTP_HOST} ^虚拟主机已备案域名$ [NC]
  RewriteCond %{REQUEST_URI} ^.*(\.css|\.js|\.gif|\.png|\.jpg|\.jpeg|\.xml)
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ ./$1 [QSA,PT,L]
  RewriteCond %{REQUEST_URI} !^.*(\.css|\.js|\.gif|\.png|\.jpg|\.jpeg|\.xml)
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ ./index.php/$1 [QSA,PT,L]
</IfModule>

3.规则解读

<IfModule mod_rewrite.c></IfModule>
RewriteCond (正则匹配)
%{REQUEST_URI}
%{REQUEST_FILENAME}
RewriteRule (正则匹配转发的占位变量) (具体的转发路径 $1代表第一个正则匹配,可匹配 $1 - $9)  (中括号中的值下一条详解)
上一篇 下一篇

猜你喜欢

热点阅读