修改$ _SERVER ['REQUEST_URI'],具体取决于index.php所在的目录

时间:2013-07-26 11:01:04

标签: php .htaccess request

我有一个问题:

我有在virutalhost上运行的应用程序:example.com

应用程序处理所有所有请求example.com/*,它们属于index.php脚本,其中魔术进一步发生。

魔术环境变量$ _SERVER ['REQUEST_URI']的组件,一切正常,直到我想在子目录中运行应用程序:example.com/abc / *

我的问题是:

在输入example.com/abc/whatever index.php脚本后,如何使用.htaccess中的条目修改$ _SERVER ['REQUEST_URI'] 在$ _SERVER ['REQUEST_URI']中是条目:/ what and not / abc / whatever?

我做了一些研究,并慢慢得出结论,它只是对index.php脚本中$ _SERVER ['REQUEST_URI']的修改是一种解决方案吗?

有人有想法吗?

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

尽量不要将$_SERVER['REQUEST_URI']用于此类事情。

而是使用define,然后在整个应用程序中使用这些定义。因此,对于您的子目录,请在整个应用程序中使用BASE_DIRBASE_URL

define("BASE_DIR", "/var/www/abc/");
define("BASE_URL", "/abc);

如果您需要再次移动它,这很容易完成,因为您可以更改这两个变量,而不必担心确保$ _SERVER ['REQUEST_URI']是正确的。

define("BASE_DIR", "/var/www/sitename.com/httpdocs/subdir");
define("BASE_URL", "/subdir);

请注意您使用这些定义

echo "The base dir is " . BASE_DIR;