2015-04-01 80 views
0

正如標題所說,我希望所有的請求重定向所有的RESTful請求域根不改變URL

domain.com/something 
domain.com/somethting/else 
domain.com/a/third/thing 

重定向到

domain.com 

,但仍顯示原來的URL,因爲我想用他們作爲參數。我試過thesetwo的想法,但網址最終顯示

domain.com 

回答

0

我找到了答案here at Gareth Jones's blog

傳遞的所有請求到一個PHP腳本

我所需要的所有請求用某個URL前綴將由單個腳本處理。這是使用以下URL重寫規則.htaccess文件迎刃而解:

Options +FollowSymLinks 
RewriteEngine on 
RewriteRule ^.*$ index.php 

注意,我不得不啓用在Apache的mod_rewrite的模塊,並確保指令可以用以下覆蓋:

<Directory /var/www/> 
    AllowOverride All 
</Directory> 

確定完整請求的URL

我的應用程序通過URL重寫複雜的另一個要求是,我需要訪問的完整URL。我用以下代碼實現了這一點:

$protocol = $_SERVER['HTTPS'] == 'on' ? 'https' : 'http'; 
$location = $_SERVER['REQUEST_URI']; 
if ($_SERVER['QUERY_STRING']) { 
    $location = substr($location, 0, strrpos($location, $_SERVER['QUERY_STRING']) - 1); 
} 
$url = $protocol.'://'.$_SERVER['HTTP_HOST'].$location;