0
正如标题所说,我希望所有的请求重定向所有的RESTful请求域根不改变URL
domain.com/something
domain.com/somethting/else
domain.com/a/third/thing
重定向到
domain.com
,但仍显示原来的URL,因为我想用他们作为参数。我试过thesetwo的想法,但网址最终显示
domain.com
正如标题所说,我希望所有的请求重定向所有的RESTful请求域根不改变URL
domain.com/something
domain.com/somethting/else
domain.com/a/third/thing
重定向到
domain.com
,但仍显示原来的URL,因为我想用他们作为参数。我试过thesetwo的想法,但网址最终显示
domain.com
我找到了答案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;