APACHE的AcceptPathInfo指令使用介绍_php技巧
有时我们在做虚拟静态化或者让路径看起来很漂亮的时候,可能会看到http://www.example.com/index.php/html1这样URL地址,而在访问的实际是根目录下的index.php文件,而把/html1做为PATH_INFO环境变量传递给脚本。而对于apache来说上面的地址能否正确运行取决于AcceptPathInfo指令的配置
AcceptPathInfo 指令
说明 是否接受附带多余路径名信息的请求
语法 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的非常简单的代码:
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了。

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Wie bekomme ich Gegenstände mithilfe von Befehlen in Terraria? 1. Was ist der Befehl zum Erteilen von Gegenständen in Terraria? Im Spiel Terraria ist das Erteilen von Befehlen an Gegenstände eine sehr praktische Funktion. Durch diesen Befehl können Spieler die benötigten Gegenstände direkt erhalten, ohne gegen Monster kämpfen oder sich an einen bestimmten Ort teleportieren zu müssen. Dies kann erheblich Zeit sparen, die Effizienz des Spiels verbessern und es den Spielern ermöglichen, sich mehr auf die Erkundung und den Aufbau der Welt zu konzentrieren. Insgesamt macht diese Funktion das Spielerlebnis flüssiger und angenehmer. 2. So verwenden Sie Terraria, um Objektbefehle zu erteilen 1. Öffnen Sie das Spiel und rufen Sie die Spieloberfläche auf. 2. Drücken Sie die „Enter“-Taste auf der Tastatur, um das Chat-Fenster zu öffnen. 3. Geben Sie im Chatfenster das Befehlsformat ein: „/give[Spielername][Artikel-ID][Artikelmenge]“.

Dieser Artikel soll Anfängern helfen, schnell mit Vue.js3 zu beginnen und einen einfachen Tab-Wechseleffekt zu erzielen. Vue.js ist ein beliebtes JavaScript-Framework, mit dem Sie wiederverwendbare Komponenten erstellen, den Status Ihrer Anwendung einfach verwalten und Interaktionen mit der Benutzeroberfläche verwalten können. Vue.js3 ist die neueste Version des Frameworks. Im Vergleich zu früheren Versionen wurden große Änderungen vorgenommen, die Grundprinzipien haben sich jedoch nicht geändert. In diesem Artikel verwenden wir die Anweisungen von Vue.js, um den Tab-Wechseleffekt zu implementieren, um die Leser mit Vue.js vertraut zu machen

Mobile Geräte sind zu einem wesentlichen Bestandteil des Lebens der Menschen in der modernen Gesellschaft geworden. Auch in der Freizeit sind Spiele zu einer der wichtigsten Unterhaltungsformen geworden. Es gibt ständig Leute, die an der Entwicklung neuer Tools und Technologien arbeiten, um das Gameplay zu optimieren und das Spielerlebnis zu verbessern. Zu den auffälligen Neuerungen gehört die Eingabemethode mit eigenem MC-Befehl. Und wie es den Spielern ein besseres Spielerlebnis bieten kann. Dieser Artikel befasst sich mit den unendlichen Möglichkeiten der integrierten MC-Befehlseingabemethode. Einführung in die integrierte MC-Befehlseingabemethode Die integrierte MC-Befehlseingabemethode ist ein innovatives Tool, das die Funktionen von MC-Befehlen und intelligenten Eingabemethoden kombiniert. Dadurch werden mehr Vorgänge und Funktionen ermöglicht. Durch die Installation dieser Eingabemethode auf einem mobilen Gerät können Spieler problemlos verschiedene Befehle im Spiel verwenden. Geben Sie schnell Befehle ein, um die Spieleffizienz zu verbessern

Zu den Anweisungen, die der Computer direkt ausführen kann, gehören Operationscodes und Operanden. Der Opcode bezieht sich auf den Teil der Anweisung oder des Felds, der im Computerprogramm zur Ausführung der Operation angegeben ist. Dabei handelt es sich tatsächlich um die Befehlssequenznummer, die verwendet wird, um der CPU mitzuteilen, welcher Befehl ausgeführt werden muss.

Xi Xiaoyao Technology sagte, dass der ursprüngliche Autor IQ in letzter Zeit auf der Grundlage des benutzerfreundlichen ChatGPT neu erstellt wurde und viele von ihnen relativ auffällige Ergebnisse erzielten. Die Arbeit von InternChat legt Wert auf Benutzerfreundlichkeit, indem bei multimodalen Aufgaben mit dem Chatbot auf eine Weise interagiert wird, die über die Sprache (Cursor und Gesten) hinausgeht. Interessant ist auch der Name InternChat, der für Interaktion, Nonverbal und Chatbots steht und als iChat bezeichnet werden kann. Im Gegensatz zu bestehenden interaktiven Systemen, die auf reiner Sprache basieren, verbessert iChat die Effizienz der Kommunikation zwischen Benutzern und Chatbots erheblich, indem es Zeigeanweisungen hinzufügt. Darüber hinaus hat der Autor auch

Anweisungen sind Befehle, die die Computerausführung steuern und aus Operationscodes und Adresscodes bestehen. Normalerweise umfasst eine Anweisung zwei Aspekte: Operationscode und Operand (Adresscode). Der Operationscode bestimmt die auszuführende Operation, und der Operand bezieht sich auf die an der Operation beteiligten Daten und die Adresse der Einheit, in der er sich befindet.

Theoretisch lassen sich die Anweisungen in der Anwendung in zwei Kategorien einteilen: den Befehlssatz der Zentraleinheit (CPU) und den Befehlssatz, mit dem bestimmte Dienste vom Betriebssystem angefordert werden. Eine Anweisung bezieht sich auf einen Code, der den Computer anweist, eine spezielle Operation auszuführen. Eine Anweisung besteht normalerweise aus einem Operationscode und einem Adresscode.

Zu den Anweisungen zum Verhindern von Blasenereignissen gehören stopPropagation(), cancelBubble-Attribut, event.stopPropagation(), event.cancelBubble-Attribut, event.stopImmediatePropagation() usw. Ausführliche Einführung: 1. stopPropagation() ist eine der am häufigsten verwendeten Anweisungen, mit der die Ausbreitung von Ereignissen gestoppt wird. Wenn ein Ereignis ausgelöst wird, kann der Aufruf dieser Methode verhindern, dass das Ereignis fortgesetzt wird usw.
