菜单

Apache之AllowOverride参数详解

2019年4月22日 - 皇家赌场系统

壹、在apache中,当大家应用Apache的rewrite模块对UEvoqueL进行重写时,rewrite规则会写在
.htaccess 文件里。

万般接纳Apache的rewrite模块对 UCR-VL 实行重写的时候, rewrite规则会写在
.htaccess 文件里。但要使 apache 能够符合规律的读取.htaccess
文件的剧情,就务须对.htaccess
所在目录举办安顿。从安全性思考,根目录的AllowOverride属性一般都安排成不允许别的Override
,即
< Directory />
AllowOverride None
< /Directory>

从安全性考虑,根目录的AllowOverride属性一般都配置成不一致意任何Override
,即
< Directory />
AllowOverride None
< /Directory>

伪静态

要使 apache 能够平常的读取.htaccess 文件的内容,就非得对.htaccess
所在目录举行配备。

在 AllowOverride 设置为 None 时, .htaccess
文件将被统统忽视。当此指令设置为 All 时,全体具备 “.htaccess”
功能域的授命都允许现身在 .htaccess 文件中。

在 AllowOverride 设置为 None 时, .htaccess
文件将被统统忽略。当此指令设置为 All 时,全数具备 “.htaccess”
功效域的授命都允许出未来 .htaccess 文件中。

伪静态

但鉴于安全性考虑,根目录的AllowOverride属性一般都布置成不容许其余**Override,如

而对于 U卡宴L rewrite 来说,至少须要把目录设置为
< Directory /myblogroot/>
AllowOverride FileInfo
< /Directory>

而对此 UWranglerL rewrite 来讲,至少须求把目录设置为
< Directory /myblogroot/>
AllowOverride FileInfo
< /Directory>

伪静态页面,其目标是为着越来越好的被寻觅引擎收音和录音而由此一定的规则,把动态页面包车型大巴地址调换来以htm或html结尾的地址,看起来是静态的,实际是依旧是动态页面。


AllowOverride的参数:

AllowOverride的参数:

然则现在广大CMS网址程序,都足以把动态页面一直生成真静态的,正是所访问的页面是真真实实存的,根静态页面同样。那样的裨益是访问速度快,不须求频仍去读取筛选服务器里的多寡,缓慢化解了服务器的压力,同时也能越来越好地被寻觅引擎收音和录音。

<Directory />  
    Options FollowSymLinks  
    AllowOverride None
    Order allow,deny  
    Allow from All  
</Directory> 

AuthConfig 允许使用与认证授权相关的授命(AuthDB名爵roupFile,
AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile,
Require, 等)。

AuthConfig
同意利用与认证授权相关的指令(AuthDBMGroupFile, AuthDBMUserFile,
AuthGroupFile, AuthName, AuthType, AuthUserFile, Require, 等)。

重大不足

壹、当然犹如一篇小说的小编所说的:”假若流量稍大片段行使伪静态就涌出CUP使
用超负荷,作者的同时在线300四个人就挂了,而不利用伪静态的时候同时在线超500人都不挂,小编的IIS(网络音讯服务)数是一千。”确实是那样的,由于伪静态是用正则
决断而不是真性地址,分别突显哪个页面包车型客车权利也由直接钦命转由CPU来判断了,所以CPU据有量的进步,确实是伪静态最大的弊病。

二、网址承受力低。

其它,会造成网址可接受同时在线人数骤减。假使你的网址能够确定保证一千人还要做客的话,那么做了伪静态管理未来,300人访问就能够让您网址挂掉。

三、网页展开慢。

伪静态页面张开速度快,大致太滑稽了,伪静态还是要读取数据库,还附加的多了1个.重写网站.的经过,其余的手续相对不会比动态少,怎么会快吗?

四、大批量的再一次页面。

做了伪静态后,原有的页面也得以访问,那就产生了汪洋的伪静态页面和动态页面重新,对网址极为不佳。

五、须求服务器的支撑。

并不是全部的服务器都支持伪静态的,那无意又充实了基金。

之所以,如若网站中的动态参数未有完成想想寻找引擎收音和录音的程度,动态要比伪静态好的多。

陆、形成真正的静态网页不可能访问。

万壹php伪静态成html,那么真正的静态页就不能访问了。(可透过改变服务器配置消除,可是您又何必去费那把力气呢?)

 

【注】AllowOverride从字面上解释是同意覆盖的情致,即Apache允许另1安排文件覆盖现成配置文件。

FileInfo 允许使用调控文书档案类型的一声令下(DefaultType, ErrorDocument,
ForceType, LanguagePriority, SetHandler, SetInputFilter,
SetOutputFilter, mod_mime中的 Add* 和 Remove*
指令等等)、调控文书档案元数据的授命(Header, RequestHeader, SetEnvIf,
SetEnvIfNoCase, BrowserMatch, CookieExpires, CookieDomain, CookieStyle,
CookieTracking, CookieName)、mod_rewrite中的指令(RewriteEngine,
RewriteOptions, RewriteBase, RewriteCond,
RewriteRule)和mod_actions中的Action指令。

FileInfo
同意利用调节文书档案类型的一声令下(DefaultType, ErrorDocument, ForceType,
LanguagePriority, SetHandler, SetInputFilter, SetOutputFilter,
mod_mime中的 Add* 和 Remove* 指令等等)、调节文书档案元数据的通令(Header,
RequestHeader, SetEnvIf, SetEnvIfNoCase, BrowserMatch, CookieExpires,
CookieDomain, CookieStyle, CookieTracking,
CookieName)、mod_rewrite中的指令(RewriteEngine, RewriteOptions,
RewriteBase, RewriteCond, RewriteRule)和mod_actions中的Action指令。

格局步骤

 

找到apache的布局文件httpd.conf(文件在conf目录下),先必须得让服务器援救mod_rewrite。

 

mod_rewrite:

 

此模块提供了三个依据正则表达式


析器的重写引擎来实时重写URAV肆L请求。它援助种种完整规则能够享有不限数量的子规则以及附加条件规则的利落而且有力的UMuranoL操作机制。此UCR-VL操作能够依赖于各类测试,比方服务器变量、情况变量、HTTP头、时间标志,以至各个格式的用于相配U福特ExplorerL组成都部队分的追寻数据库。

此模块能够操作U奇骏L的享有片段(包蕴路线新闻部分),在劳务器级的(httpd.conf)和目录级的(.htaccess)配置都使得,仍是能够转换最后请求字符串。此重写操作的结果能够是内部子管理,也足以是外部请求的转向,以致还足以是中间代理管理。

一般mod_rewrite暗中同意是不运转的,那时大家供给手动启用它。

 

 

 

找到AllowOverride None 改成 AllowOverride All

 

AllowOverride:

常使用Apache的rewrite模块对 U福特ExplorerL 举行重写的时候, rewrite规则会写在 .htaccess 文件里。但要使 apache 能够健康的读取.htaccess 文件的始末,就不能不对.htaccess 所在目录进行配置。从安全性思量,根目录的AllowOverride属性一般都配备成不容许其余Override ,即

< Directory />AllowOverride None< /Directory>

在 AllowOverride 设置为 None 时, .htaccess 文件将被完全忽略。当此指令设置为 All 时,全体具备 “.htaccess” 功能域的指令都同意出现在 .htaccess 文件中。

而对于 UWranglerL rewrite 来说,至少要求把目录设置为

< Directory /myblogroot/>AllowOverride FileInfo< /Directory>

AllowOverride的参数

AuthConfig 允许使用与认证授权相关的指令(AuthDBMGroupFile,
AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile,
Require, 等)。FileInfo 允许使用调节文书档案类型的下令(DefaultType,
ErrorDocument, ForceType, LanguagePriority, SetHandler, SetInputFilter,
SetOutputFilter, mod_mime中的 Add* 和 Remove*
指令等等)、调节文书档案元数据的吩咐(Header, RequestHeader, SetEnvIf,
SetEnvIfNoCase, BrowserMatch, CookieExpires, CookieDomain, CookieStyle,
CookieTracking, CookieName)、mod_rewrite中的指令(RewriteEngine,
RewriteOptions, RewriteBase, RewriteCond,
RewriteRule)和mod_actions中的Action指令。Indexes 允许行使调控目录索引的一声令下(AddDescription,
AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex,
FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName,
等)。Limit 允许选择调整主机访问的指令(Allow, Deny,
Order)。Options[=Option,…] 允许采纳调控钦定目录作用的指令(Options和XBit哈克)。能够在等号前面附加贰个逗号分隔的(无空格的)Options选项列表,用来支配允许Options指令使用什么选项。

 

:AllowOverride
的参数设置为ALL,表示整台服务器上都协助UOdysseyL规则重写。Apache
服务器要读各类网址下目录下的 .htaccess
文件。假设未有那么些文件,大概那个文书档案未有概念任何有关UCR-VL重写的规则就不会有别的功效。  对于不相同的网站,要求在APACHE中加进如下内容       Options
FollowSymLinks   AllowOverride None

 

 

在.htaccess中有三种写法  第1种相比较全 不过常用的是第二种

第一种:

   

Options +FollowSymLinks  

IndexIgnore **

 

RewriteEngine on

 

# if a directory or a file exists, use it directly

RewriteCond  %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

 

# otherwise forward it to index.php

RewriteRule . Index.php 【L】

 

 

mod_rewrite

务求有followsymlinks,不然会呈现500里面服务器错误。IndexIgnore让钦点file排除在显示列表之外,也便是忽视显示,相当于不出示,file能够是文本全名,或是shell样式的通配符。RewriteCond
%{REQUEST_FILENAME}
!-f,那句话的意味是:要是文件存在,就一贯访问文件,不开始展览下边包车型客车RewriteRule.%{REQUEST_FILENAME}
 请求的文本名!-f  不是文件或不存在!-d  不是目录或不设有[L]
这是最终三个相称项,不再往下相配

 

RewriteCond还有其他  比方!-s 是不是是长度不为0的regular的文件

     -i 是否为symbolice link

     -u 用subrequest检查有个别U福睿斯L是或不是留存

等等

 

 

YII中伪静态使用

 

Common->config->main.php

 

率先,在配置文件config/main.php的’components’
段中,加入如下设置:’urlManager’=>array(    ‘enablePrettyUrl’ =>
true, //对url举行美化    ‘showScriptName’ =>
false,//隐藏index.php    ‘suffix’ =>
‘.html’,//后缀   ‘enableStrictParsing’=>FALSE,//不供给网站严峻匹配,则不须要输入rules   ‘rules’
=> []//网站相称规则

)

 

 

 

 

rules实例

‘sitemap\.xml’ => ‘site/sitemap’, //网址地图

    ‘sitemap\.xsl’ => ‘site/sitemapxsl’, //网址索引

    ‘page/’=>’page/index’, //单页

    ‘//cat_/page_’=>’/’, //分页

    ‘//page_’=>’/’, //分页

    ‘//cat_’ => ‘/’,  //内容列表

    ‘tag/index/’ => ‘tag/index’,            //标签找寻页

    ‘/’=>’/view’,

    ‘//’=>’/’,

    ‘/’=>’/’,

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图