美工统筹SEO,为企业电子商务营销助力!
APACHE的AcceptPathInfo指令利用先容
一佰互联网站开辟设想(www.taishanly.com) 宣布日期 2020-04-30 09:21:35 阅读数: 106
语法 AcceptPathInfo On|Off|Default
默许值 AcceptPathInfo Default
感化域 server config, virtual host, directory, .htaccess
笼盖项 FileInfo
状况 焦点(C)
模块 core
兼容性 仅在 Apache 2.0.30 及今后的版本中可用 此指令决议是不是接管在现实文件名(或现实目次中一个不存在的文件)后跟从过剩途径名信息的要求。这个过剩的途径名信息能够或许看成PATH_INFO情况变量通报给剧本。 比方说,假定/test/所指向的目次下只包罗一个文件:here.html ,那末对/test/here.html/more和/test/nothere.html/more的要求都会将PATH_INFO情况变量设为"/more"。 AcceptPathInfo指令的取值规模: Off
仅当一个要求映照到一个实在存在的途径时,才会被接管。如许,如上述/test/here.html/more如许在实在文件名后跟从一个途径名的要求将会前往一个"404 NOT FOUND"毛病。
On
只需前导途径能够或许映照到一个实在存在的文件,便能够或许接管该要求。如许,只需上述/test/here.html能够或许映照到一个有效的文件,那末对/test/here.html/more的要求就会被领受。
Default
是不是领受附带过剩途径名信息的要求由其对应的处置器来决议。对应通俗文本的焦点处置器默许会谢绝PATH_INFO 。而用于伺服剧本的处置器,比方cgi-script和isapi-isa,默许会接管PATH_INFO 。
AcceptPathInfo指令存在的重要目标便是许可您笼盖处置器对是不是接管PATH_INFO的默许设置。这类笼盖是很须要的。比方说,当您利用了近似INCLUDES如许的过滤器来按照PATH_INFO发生内容时。焦点处置器凡是会谢绝如许的要求,而您便能够或许用下述的设置装备摆设使如许的剧本成为能够或许: Options +Includes
SetOutputFilter INCLUDES
AcceptPathInfo On apache 2.0以上中的默许的是不acceptpathinfo 从APACH2.0.30以上办事器中去掉了acceptpathinfo;若是须要的话须要在http.conf中增加AcceptPathInfo On这一条。即本来的 Options FollowSymLinks includes
AllowOverride None
改成
Options FollowSymLinks includes
AllowOverride None
AcceptPathInfo On 此指令决议了是不是接管包罗在某肯定文件(或是某现有目次的一个不存在的文件)后附加的途径信息。此途径信息将在剧本里以PATH_INFO情况变量的情势呈现。
比方说,假定/test/所指向的目次下只包罗一个文件:here.html。那末对/test/here.html/more和/test/nothere.html/more的要求都会取得/more如许的PATH_INFO变量。
AcceptPathInfo指令的三个参数为:
off
仅当一个要求映照到一个实在存在的途径时,它才会被接管。如许,如上述/test/here.html/more如许的在实在文件名后跟从一个途径名的要求将会前往一个404 NOT FOUND毛病。
on
若是后面的途径映照到一个实在存在的文件,此要求将被接管。若是/test/here.html映照着一个有效的文件,上例中/test/here.html/more这个要求就会被接管。
default
对附加途径名的要求的处置体例由其对应的处置器来决议。对应通俗文本的焦点处置器默许会谢绝PATH_INFO。而用于伺服剧本的处置器,比方cgi-script和isapi-isa,默许会接管PATH_INFO。 PHP中的全局变量$_SERVER["PATH_INFO"]是一个很有效的参数,浩繁的CMS体系在丑化本身的URL的时辰,都用到了这个参数。 对上面这个网址:
http://www.test.com/index.php/foo/bar.html?c=index&m=search
咱们能够或许取得 $_SERVER["PATH_INFO"] = ‘/foo/bar.html",而此时 $_SERVER["QUERY_STRING"] = "c=index&m=search";
凡是,咱们最后起头PHP法式编写的时辰,都会利用诸如: http://www.test.com/index.php?c=search&m=main 如许的URL,这类URL不只看起来很是奇异,并且对搜刮引擎也是很是不友爱的。良多搜刮引擎收录的时辰,都会疏忽Query String以后的内容,google固然不会疏忽Query String,可是对其余不含Query String的页面,会给于比拟高的PR值。 上面是一段剖析PATH_INFO的很是简略的代码: 复制代码 代码以下:
<?php
if( !isset( $_SERVER["PATH_INFO"] ) ){
$pathinfo = "default";
}else{
$pathinfo = explode("/", $_SERVER["PATH_INFO"]);
}
if( is_array($pathinfo) AND !empty($pathinfo) ){
$page = $pathinfo[1];
}else{
$page = "a.php";
}
require "$page.php";
?>
php文件名后加斜线“/”不能一般拜候,报not found毛病
体系坏后,重装体系后,设置装备摆设php情况。用的软件和之前的版本都不异。 情况设置装备摆设好后,因任务名目都是单进口文件,index.php文件后边加了斜线能力进入。没换体系前都能够或许拜候,能够或许解除软件版本题目. 刚想进入任务名目,就报not found 不知为甚么。测试后得悉,php文件名后加斜线“/”不能一般拜候 扣问多人,未果。google 度娘 未果 找公司一资深php工程师
说是apache有如许一个指令 :AcceptPathInfo 在apache的设置装备摆设文件外面加上:AcceptPathInfo on 就ok了。
上一篇: php牛逼的口试题分享 | 下一篇:php图片加水印道理(超简略的实例代码)