.htaccess动态网址重定向

时间:2016-03-11 04:42:16

标签: php apache .htaccess redirect

当我点击链接时,我有一些动态网址,它应该将我重定向到所需的动态网址(在当前网址中添加一些更改)。我使用.htaccess将以特定字符串开头的动态网址重定向到PHP网页,然后使用header()从那里重定向。

PHP部分:

$link               = "http://date.hot.tl/aaa/bbb/ccc.html?d=1&e=2";
$subdomainSelect    = substr($link,strpos($link,"date.")+strlen("date."));
$curDate    = date('Y-m-d');
$date = new DateTime($curDate);
$date->modify('+1 day');
$tommorrow  = $date->format('Y-m-d');
$date->modify('+1 day');
$dayAfterTommorrow  = $date->format('Y-m-d');

$chkInTime          = substr($subdomainSelect,strpos($subdomainSelect,"checkin")+strlen("checkin"));
if (strpos($chkInTime,"&")) {
    $chkInTime          = substr($chkInTime,0,strpos($chkInTime,"&"));
}
$chkInTime          = trim(strip_tags($chkInTime),"=");
$chkOutTime = substr($link,strpos($link,"checkout")+strlen("checkout"));
if (strpos($chkOutTime,"&")) {
    $chkOutTime = substr($chkOutTime,0,strpos($chkOutTime,"&"));
}
$chkOutTime = trim(strip_tags($chkOutTime),"=");

if (strpos($subdomainSelect,"checkin")) {
    $subdomainSelect    = str_replace($chkInTime,$tommorrow,$subdomainSelect);      
} else {
    $subdomainSelect    = $subdomainSelect."&checkin=$tommorrow";   
}
if (strpos($subdomainSelect,"checkout")) {
    $subdomainSelect    = str_replace($chkOutTime,$dayAfterTommorrow,$subdomainSelect);
} else {
    $subdomainSelect    = $subdomainSelect."&checkout=$dayAfterTommorrow";
}
header('location:$subdomainSelect');

基本思想是,当我点击链接时,它可能是动态的,因此它应该重定向到某个动态URL(通过使用PHP对URL进行一些更改)。因此,我创建了一个PHP文件,将网址更改为所需网址并使用header()重定向。此部分工作正常,但不会重定向到我使用的PHP页面.htaccess而且我也不知道如何获取我的PHP页面的网址,

$link               = "http://date.hot.tl/aaa/bbb/ccc.html?d=1&e=2";

是动态的。

.htaccess part:

    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^http://date.hot.tl$
    RewriteRule ^index.php [L,R=301]

1 个答案:

答案 0 :(得分:0)

首先,确保启用了mod_rewrite。

然后,正如starkeen已经提到的那样,从.htaccess中删除协议部分:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^date.hot.tl(.*)$
RewriteRule ^index.php [L,R=301]