Mod rewrite 使用mod_rewrite从一个域重定向到另一个域

Mod rewrite 使用mod_rewrite从一个域重定向到另一个域,mod-rewrite,Mod Rewrite,我为某人建立了一个网站,其URL如下: www.flowers-oakville.com。 但他们也希望www.flowersoakville.com登陆该页面 现在的问题是,从www.flowesakville.com重定向到www.flowers-oakville.com的最佳方式是什么。我不希望用户的浏览器通过在地址栏中显示新的URL来显示重定向,因此我认为Apache的重定向命令不是解决方案。另外,Apache重定向将需要一次额外的往返浏览器的旅程,这是我希望避免的。因此,我认为解决方案

我为某人建立了一个网站,其URL如下:
www.flowers-oakville.com
。 但他们也希望
www.flowersoakville.com
登陆该页面

现在的问题是,从www.flowesakville.com重定向到www.flowers-oakville.com的最佳方式是什么。我不希望用户的浏览器通过在地址栏中显示新的URL来显示重定向,因此我认为Apache的重定向命令不是解决方案。另外,Apache重定向将需要一次额外的往返浏览器的旅程,这是我希望避免的。因此,我认为解决方案需要一个mod_重写,据我所知,它在服务器内完成所有工作,从而避免往返,并且用户的地址栏保持不变

但在阅读了一些mod_rewrite教程之后,似乎mod_rewrite主要用于重定向文件,而不是整个网站。有没有一个简单的方法可以做到这一点


感谢您的帮助。

我会在域级别执行此操作,并确保您在网站中为主机名使用相对链接或环境变量

www.flowersoakville.com添加为指向www.flowers-oakville.comCNAME记录


这将服务于同一个网站,但保留用户输入的域名,除非您在网站的某个链接中明确链接了实际域。

我将在域级别执行此操作,并确保您在网站中为主机名使用相对链接或环境变量

www.flowersoakville.com添加为指向www.flowers-oakville.comCNAME记录

这将服务于同一个网站,但保留用户输入的域名,除非您在网站的某个链接中明确链接了实际域名。

如果 如果在服务器上启用,则可以在.htaccess文件中使用mod_rewrite(以下代码)将域重定向到另一个域,而无需更改地址栏中的url

尝试将此添加到
www.flowersoakville.com/.htaccess
文件:

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^(www\.)?flowersoakville\.com$ [NC]
RewriteRule ^ http://www.flowers-oakville.com%{REQUEST_URI} [L,NE,P]
注意:如果服务器上未启用代理模块,上述示例将不起作用。

如果 如果在服务器上启用,则可以在.htaccess文件中使用mod_rewrite(以下代码)将域重定向到另一个域,而无需更改地址栏中的url

尝试将此添加到
www.flowersoakville.com/.htaccess
文件:

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^(www\.)?flowersoakville\.com$ [NC]
RewriteRule ^ http://www.flowers-oakville.com%{REQUEST_URI} [L,NE,P]

注意:如果您的服务器上未启用代理模块,则上述示例将不起作用。

我想介绍一下使用Dwev答案的经验。事实证明,在我的虚拟服务器中运行的DNS管理器(我使用EAPP作为我的主机提供商)不支持“基于域的重定向”。也就是说,CNAME记录的左侧必须位于该域中。因此,当试图在flowers-oakville.com记录中创建指向flowers-oakville.com的CNAME记录时,左侧必须是xxx.flowers-oakville.com,其中xxx可能类似于www。我无法将左侧设置为flowersoakville.com,尽管flowersoakville.com是我的服务器正在监听的域名之一。

我想把我尝试使用Dwev答案的经验传递给大家。事实证明,在我的虚拟服务器中运行的DNS管理器(我使用EAPP作为我的主机提供商)不支持“基于域的重定向”。也就是说,CNAME记录的左侧必须位于该域中。因此,当试图在flowers-oakville.com记录中创建指向flowers-oakville.com的CNAME记录时,左侧必须是xxx.flowers-oakville.com,其中xxx可能类似于www。我无法将左侧设置为flowersoakville.com,尽管flowersoakville.com是我的服务器正在监听的域名之一。

谢谢。让我确定我在跟踪你。域和所有站点文件现在作为flowers-oakville.com在我的服务器上。该域名已经有一个名为www.flowers-oakville.com的CNAME记录,其值为flowers-oakville.com。现在,你是说要添加另一个名为flowersoakville.com的CNAME记录,它的值是flowers-oakville.com,对吗?我想我也应该创建一个www.flowersoakville.com的CNAME记录,并赋予它flowers-oakville.com的价值。正确的?但是你能解释一下“在网站中使用主机名的相对链接”是什么意思吗?谢谢,没错。至于相对链接,我的意思是,如果你有一个指向about页面索引的链接,比如,它写为“about/index.htm”,而不是“about”。这样,无论用户进入哪个领域,它都将保持这种方式。在实现您的答案时遇到困难。见下面我的答案。不是你的错。我相信它对其他DNS管理员也适用。谢谢。让我确定我在跟踪你。域和所有站点文件现在作为flowers-oakville.com在我的服务器上。该域名已经有一个名为www.flowers-oakville.com的CNAME记录,其值为flowers-oakville.com。现在,你是说要添加另一个名为flowersoakville.com的CNAME记录,它的值是flowers-oakville.com,对吗?我想我也应该创建一个www.flowersoakville.com的CNAME记录,并赋予它flowers-oakville.com的价值。正确的?但是你能解释一下“在网站中使用主机名的相对链接”是什么意思吗?谢谢,没错。至于相对链接,我的意思是,如果你有一个指向about页面索引的链接,比如,它写为“about/index.htm”,而不是“about”。这样,无论用户进入哪个领域,它都将保持这种方式。在实现您的答案时遇到困难。见下面我的答案。不是你的错。我相信它适用于其他DNS管理员。谢谢你的回答。我很想分享这两个答案之间的悬赏,但我认为这是不可能的。我把它给了Dwev,因为域解决方案看起来更简单。但我把你的答案抄了下来