0

我有一个特殊的需求,我想对使用 .htaccess mod_rewriting 的正确解决方案有一些见解。

基本上我需要将一个域映射到另一个域的子文件夹。所有对 www.website.com 的请求都应重定向到 www.domain.com/branch 上的内容,同时将 www.website.com 保留在浏览器的地址栏中。对 www.website.com/subpage 的请求也应该重定向到 www.domain.com/branch/subpage,因此 www.website.com/subpage URL 被保留。

对 www.domain.com/branch 的请求应重写为 www.website.com,对 www.domain.com/branch/subfolder 的请求应重写为 www.website.com/subfolder。

我正在使用表达式引擎模板系统,但这应该不是问题。什么是正确的 mod_rewriting?

稍后我将不得不“嗅探”网址,以便为相同的内容提供不同的徽标和颜色,但我想我可以用 javascript 制作它吗?

到目前为止,我一直在用这样的说明来探索这个问题:

RewriteCond %{HTTP_HOST} ^(www\.)?website.com\.com [NC]
RewriteRule ^/(.*) /branch/$1 [L]

但整个事情似乎要复杂得多……专家能否正确地指出我使用 mod_rewrite 获得所需的一切?

4

1 回答 1

0
RewriteEngine On
RewriteBase /

#internally redirect request for website.com to the /branch folder
RewriteCond %{HTTP_HOST} ^(www\.)?website\.com [NC]
RewriteCond %{REQUEST_URI} !^/branch
RewriteRule ^(.*) /branch/$1 [L]

# redirect direct request for /branch to the website.com
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com [NC]
RewriteRule ^branch/(.*) http://www.website.com/$1 [R=302,L]

I'm assuming you are putting these rules into htaccess, otherwise you would need leading slashes in the RewriteRules

于 2013-03-20T18:51:26.227 回答