繁体   English   中英

Apache mod-rewrite重定向

[英]Apache mod-rewrite redirect

我需要去做:

如果用户转到test.com,则服务器必须重定向到main.com/check.php ,进行检查并返回到test.com

.htaccess:

RewriteCond %{HTTP_HOST} !^main\.com$ [NC]
RewriteRule ^(.*)$ http://main.com/check.php?url=%{HTTP_HOST}%{REQUEST_URI} [L]

check.php

header("location: http://" . $_GET['url']);

但这是循环的。

有任何想法吗?

最佳选择,我认为您正在寻找的是:使用一个公共域在多个域之间共享会话。 如果是这样,请查看以下SO线程: 跨域共享会话

确定选项如果您不喜欢这样做,则可以将所有用户页面视为单独的服务,并实现单一登录系统。

顽固的选项如果这不是您想要的,并且您想坚持使用mod_rewrite,我所建议的就是尝试更多的RewriteCond来取消循环的资格。 例如,尝试在@nerkn建议的顶部添加: RewriteCond %{QUERY_STRING} !*some string* [NC, OR] (当然,还要在您的check.php中发送查询字符串。

.htaccess不知道脚本已检查,因此添加了引荐来源网址。 但这是宽松的检查,我认为您应该相信其他机制。 如果存在危险,推荐人的信仰是危险的。

RewriteCond %{HTTP_REFERER} !main\.com [NC, OR]
RewriteCond %{HTTP_HOST} !^main\.com$ [NC]
RewriteRule ^(.*)$ http://main.com/check.php?url=%{HTTP_HOST}%{REQUEST_URI} [L]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM