【问题标题】:Can mod_rewrite rules modify require_once instructions in PHP?mod_rewrite 规则可以修改 PHP 中的 require_once 指令吗?
【发布时间】:2014-05-04 03:32:24
【问题描述】:

还是我误解了 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';
  ...
}

有一个名为 ajax.php 的 php 文件来响应所有 Ajax 请求

require_once('config.php');

$task = $_GET['task'];    

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

【问题讨论】:

    标签: php ajax mod-rewrite require-once


    【解决方案1】:

    没有。 mod_rewrite 发生在 PHP 执行开始之前,仅影响 Apache 服务文件的方式(它实际上并没有改变文件系统中的任何内容,因此它不会影响 PHP)。

    但是,您可以使用$_SERVER['REQUEST_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');
    }
    

    ...等

    【讨论】:

      猜你喜欢
      • 2014-01-29
      • 1970-01-01
      • 2015-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-15
      • 1970-01-01
      相关资源
      最近更新 更多