htaccess是如何与我的php脚本交互的?
我有一个.htaccess脚本:htaccess是如何与我的php脚本交互的?,php,.htaccess,mod-rewrite,Php,.htaccess,Mod Rewrite,我有一个.htaccess脚本: RewriteBase / RewriteCond %{HTTP_HOST} ^([A-Z0-9-]+)\.stage-proxy\.com$ [NC] RewriteRule ^(.*)$ /index.php/%1.com/$1 [L] 所以当我浏览到 http://google.stage-proxy.com/analytics 根据,入站URL应为 http://google.stage-proxy.com/index.php/google.com/
RewriteBase /
RewriteCond %{HTTP_HOST} ^([A-Z0-9-]+)\.stage-proxy\.com$ [NC]
RewriteRule ^(.*)$ /index.php/%1.com/$1 [L]
所以当我浏览到
http://google.stage-proxy.com/analytics
根据,入站URL应为
http://google.stage-proxy.com/index.php/google.com/analytics
但是,每当我尝试在php中浏览$u服务器变量时,它仍然显示为
http://google.stage-proxy.com/analytics
我知道htaccess已启用(我知道已安装mod_重写模块,并且allowOverride All已启用)。发生什么事?我的知识有什么明显的漏洞吗
作为参考,我使用的是ubuntu服务器13.04。不确定这是否真的会改变任何事情。不确定为什么规则没有循环,它应该会导致500个内部错误,而不会出现类似于
RewriteCond%{REQUEST\u FILENAME}的错误-f
以防止循环
无论如何,$\u服务器['PHP\u SELF']
应该是/index.PHP/google.com/analytics
来自index.PHP,或者您可以检查$\u服务器['PATH\u INFO]
PHP_SELF:当前执行脚本的文件名,相对于文档根。例如,$\u SERVER['PHP\u SELF']在地址http://example.com/test.php/foo.bar
将是/test.php/foo.bar
。FILE常量包含当前(即包含的)文件的完整路径和文件名。如果PHP作为命令行处理器运行,则此变量包含自PHP4.3.0以来的脚本名称。以前没有
及
PATH_INFO:包含任何客户端提供的路径名信息,该信息位于实际脚本文件名之后,但位于查询字符串之前(如果可用)。例如,如果当前脚本是通过URLhttp://www.example.com/php/path_info.php/some/stuff?foo=bar
,则$\u服务器['PATH\u INFO']
将包含/some/stuff