2015-04-01 75 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;