php$SERVER[';PATH#u INFO';]和apache mod#u rewrite
这里有.htaccess文件,其中包含:php$SERVER[';PATH#u INFO';]和apache mod#u rewrite,php,apache,mod-rewrite,pathinfo,Php,Apache,Mod Rewrite,Pathinfo,这里有.htaccess文件,其中包含: Options +FollowSymLinks RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php [QSA,L] 重写也可以,但在我尝试的时候,index.php中没有路径信息 我已经讨论过这个话题,但它并没有解决我的问题 所以,这个问题只发
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [QSA,L]
重写也可以,但在我尝试的时候,index.php中没有路径信息
我已经讨论过这个话题,但它并没有解决我的问题
所以,这个问题只发生在Apache1.3上(在2.0上一切正常),我想知道为什么。不幸的是,我也无法访问httpd.conf(
请帮帮我。尝试将重写规则更改为:
RewriteRule (.*) index.php [QSA,L,E=PATH_INFO:/$1]
是实际CGI可执行文件/PHP脚本文件名之后的虚拟路径后缀。您需要通过一个才能看到它:
RewriteRule (.*) index.php/$1 [QSA,L]
请注意,您可能还需要先启用该选项:
然后根据PHP SAPI,您可能需要配置PHP.ini,关于
--cgi force redirect
设置(设计用于避免某些设置中的路径信息漏洞)。这与mod\u协商
有关,并且能够访问/index.PHP
作为/index
(无扩展名)
解决方案:
a2dismod negotiation
service apache2 restart
如果您
var\u dump($\u SERVER);
,是否有任何内容包含您想要的内容?特别是$\u SERVER['REQUEST\u URI']
包含什么内容?是的,有REQUEST\u URI,我从中构建自己的路径信息。但我只是尝试实现其他决策。我尝试了重写rule(.*)index.php/$1[QSA,L]以前,没有成功。AcceptPathInfo On-据我所知,此选项是在apache 2中添加的,但我的是1.3,无法升级。如果尝试转到site.com/index.php/example,将显示路径信息。您只是忘记了,因为它会崩溃。我将快速编辑它。。。
a2dismod negotiation
service apache2 restart