htaccess是如何与我的php脚本交互的?

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/

我有一个.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/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:包含任何客户端提供的路径名信息,该信息位于实际脚本文件名之后,但位于查询字符串之前(如果可用)。例如,如果当前脚本是通过URL
http://www.example.com/php/path_info.php/some/stuff?foo=bar
,则
$\u服务器['PATH\u INFO']
将包含
/some/stuff