mod_重写规则能否在PHP中修改require_once指令?

mod_重写规则能否在PHP中修改require_once指令?,php,ajax,mod-rewrite,require-once,Php,Ajax,Mod Rewrite,Require Once,或者我误解了mod_rewrite的用法 我需要一个web应用程序的几个实例,简单的方法是将所有文件复制到另一个文件夹,并修改配置文件以连接到另一个数据库,但我正在尝试根据子文件夹更改连接参数 Options +FollowSymLinks RewriteEngine On RewriteRule xyz/config.php config.php?id=xyz [L] RewriteRule xyz/(.*)$ $1 [QSA] 以及config.php上的一些更改 //Default co

或者我误解了mod_rewrite的用法

我需要一个web应用程序的几个实例,简单的方法是将所有文件复制到另一个文件夹,并修改配置文件以连接到另一个数据库,但我正在尝试根据子文件夹更改连接参数

Options +FollowSymLinks
RewriteEngine On
RewriteRule xyz/config.php config.php?id=xyz [L]
RewriteRule xyz/(.*)$ $1 [QSA]
以及config.php上的一些更改

//Default config
config['database'] = 'db1';
config['user'] = 'user1';
...
//config for xyz
if($_GET['id'] == 'xyz'){
  config['database'] = 'db2';
  config['user'] = 'user2';
  ...
}
有一个php文件响应所有Ajax请求,名为Ajax.php

require_once('config.php');

$task = $_GET['task'];    

if($task == 'some_task'){
  //Task according to ajax request
} else ($task == 'another_task'){
  //...
}

否。
mod_rewrite
发生在PHP执行开始之前,只影响Apache如何提供文件(它实际上不会更改文件系统中的任何内容,因此不会影响PHP)

但是,您可以使用
$\u SERVER['REQUEST\u URI']
参数来确定要加载的配置文件

例如

…等等

if(substr($_SERVER['REQUEST_URI'], 0, 4) == 'xyz/') {
     $config = include('/path/to/xyz/config.php');
}
else if(substr($_SERVER['REQUEST_URI'], 0, 4) == 'abc/') {
     $config = include('/path/to/abc/config.php');
}