带有mod重写的伪子域

时间:2013-03-01 22:48:39

标签: .htaccess mod-rewrite

很抱歉问这个...我已经看到了各种答案,但我找不到一个帮助我(因为我对这个过程很陌生,因此很难)

这是问题所在。我想伪造一个子域名,以便人们转到sub.domain.co.uk,但服务器会将其读作domain.co.uk/?event=sub,然后他们可以添加其他名称,如sub.domain.co.uk/Login,这会导致domain.co.uk/?event=sub&url=Login等等

到目前为止我的代码是:

RewriteCond %{REQUEST_URI}  !\.(php|html?|jpg|gif)$
RewriteRule ^(.*)([^/])$ http://%{HTTP_HOST}/$1$2/ [L,R=301]

# Rewrite event / url / action1 / action 2 etc.
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.co\.uk$ [NC]
RewriteRule ^/$ /index.php?event=%1 [QSA,L,NC]
RewriteRule ^([^/]*)/$ /index.php?event=%1&url=$1 [QSA,L,NC]
RewriteRule ^([^/]*)/([^/]*)/$ /index.php?event=%1&url=$1&action1=$2 [QSA,L,NC]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/$ /index.php?event=%1&url=$1&action1=$2&action2=$3 [QSA,L,NC]

几乎就是......它获取了url,action1和action2但不是事件!..如果我关闭/所以它看起来像RewriteRule ^$ index.php?event=%1 [QSA,L,NC]那么我就得到了这个事件但它试图加载下一个命令,所以

sub.domain.co.uk

负载

domain.co.uk/?event=sub&url=

这是一个bugger因为当我加载action2时它就是404了!有人帮助我疯狂

1 个答案:

答案 0 :(得分:0)

这是我做过的彻底肮脏的修复。我的.htaccess现在是这样的:

# Rewrite event / url / action1 / action 2 etc.
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.co\.uk$ [NC]
RewriteRule ^/$ /index.php [QSA,L,NC]
RewriteRule ^([^/]*)/$ /index.php?url=$1 [QSA,L,NC]
RewriteRule ^([^/]*)/([^/]*)/$ /index.php?url=$1&action1=$2 [QSA,L,NC]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/$ /index.php?url=$1&action1=$2&action2=$3 [QSA,L,NC]

在php中我有这个:

$sub = explode ( '.' , $_SERVER['HTTP_HOST'] );
$event = $sub[0] == 'www' || $sub[0] == 'domain' ? false : $sub[0] ;

现在我可以看看是否加载了$ event var ...

如果有人有一个更干净的方式,我全都耳朵,但这对我有用HUZZAR