SCRIPT_NAME和PHP_SELF与.conf中的mod_rewrite

时间:2015-05-21 14:55:23

标签: php mod-rewrite

将此mod_rewrite从.htaccess移至apache2.conf后,$_SERVER['SCRIPT_NAME']$_SERVER['PHP_SELF']都会返回与其他值不同的值。

#   point all requests to index.php
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-d
RewriteRule ^                   /index.php [L,NS]

例如

URL:

http://domain.com/path/to/dir/

如果重写在.htaccess,则$_SERVER['PHP_SELF']会返回/index.php

如果重写在apache2.conf,则$_SERVER['PHP_SELF']会返回/path/to/dir/

如果$_SERVER['PHP_SELF']不起作用,如何获取doc root的相对路径?

2 个答案:

答案 0 :(得分:0)

要获取文档根目录的相对路径,可以使用.update($doc("_id" $in (usersIds: _*)), $set("inviteStatus" $eq "Invited"), GetLastError(), false , true) ,例如用法:

$_SERVER['DOCUMENT_ROOT']

或者您也可以使用define('APP_BASE', $_SERVER['DOCUMENT_ROOT']);

realpath(dirname(__FILE__))

希望这会有所帮助,欢呼:)

答案 1 :(得分:0)

你应该尝试使用这样的规则,它确实不应该在配置或.htaccess中找到它的位置。但是,如果使用apache配置,请确保它在Directory指令中。并重新启动apache以进行任何配置更改。

<Directory /var/path/to/root>
RewriteEngine On
RewriteBase /
# point all requests to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</Directory>