2012-12-30 100 views

回答

2

是的,這可以使用$_SERVER variable如果在PHP中完成mod_rewrite變量已被導出到Apache環境變量。

爲了出口Apache的mod_rewrite的變量,所以它是通過Apache的環境變量,通過PHP訪問,確保了Apache虛擬主機包含以下配置:

RewriteEngine On 
RewriteRule .* - [E=API_VERSION:%{API_VERSION},NE] 
RewriteRule .* - [E=THE_REQUEST:%{THE_REQUEST},NE] 
RewriteRule .* - [E=REQUEST_URI:%{REQUEST_URI},NE] 
RewriteRule .* - [E=REQUEST_FILENAME:%{REQUEST_FILENAME},NE] 
RewriteRule .* - [E=IS_SUBREQ:%{IS_SUBREQ},NE] 
RewriteRule .* - [E=HTTPS:%{HTTPS},NE] 

一旦這些變量已經出口,PHP可以用於呈現mod_rewrite的THE_REQUEST和REQUEST_FILENAME變量或任何其他Apache環境變量。

<?php 
echo $_SERVER['THE_REQUEST']; 
echo $_SERVER['REQUEST_FILENAME']; 
?> 
+0

PHP變量$ _SERVER不包含mod_rewrite變量。 – Mansoor

+0

@ user1420069 PHP無法訪問這些變量,但如果它們在虛擬主機中導出(並且在虛擬主機修改後重新加載Apache),則可以訪問它們。答案已經更新以反映這一點。 – esquireofoz