Php 如何在RewriteCond中获取本地路径?

Php 如何在RewriteCond中获取本地路径?,php,apache,.htaccess,apache2,Php,Apache,.htaccess,Apache2,这是我的.htaccess文件: RewriteEngine On RewriteBase /projs/CodeIgniterTest RewriteCond %{REQUEST_URI} !^/projs/CodeIgniterTest/index.php RewriteRule ^(.*)$ index.php/$0 RewriteRule工作正常,但我无法使RewriteCond行使用本地路径。我想让它起作用: RewriteCond %{REQUEST_URI} !^index.

这是我的.htaccess文件:

RewriteEngine On

RewriteBase /projs/CodeIgniterTest

RewriteCond %{REQUEST_URI} !^/projs/CodeIgniterTest/index.php
RewriteRule ^(.*)$ index.php/$0
RewriteRule
工作正常,但我无法使
RewriteCond
行使用本地路径。我想让它起作用:

RewriteCond %{REQUEST_URI} !^index.php
但是遗憾的是,
%{REQUEST_URI}
不太关心
RewriteBase
行,而是使用完整路径。有什么方法可以达到我想要的结果吗?我不希望每次更改项目路径时都必须编辑.htaccess文件

RewriteRule ^index.php - [L]
RewriteRule ^(.*)$ index.php/$0
或者只是

RewriteCond $0 !^index.php
RewriteRule ^(.*)$ index.php/$0

RewriteCond$0^php
工作起来很有魅力!但是你能解释一下
$0
部分吗?我在RewriteCond文档中没有看到类似的内容。在执行RewriteCond规则之前,Apache在RewriteCond规则中匹配regex。因此,RewriteCond可以在TestString中使用$0..9。因此,在您的示例中,$0包含相对于您的基础的路径。(在上的第一个公告点中)