【问题标题】:Should be simple domain alias ala mod_rewrite应该是简单的域别名ala mod_rewrite
【发布时间】:2017-12-05 03:23:36
【问题描述】:

问题。

我在 Godaddy 帐户、共享、cpanel linux 网络服务器上使用 mod_rewrite... 当域 2 被请求为不可见的重定向时,我正在尝试提供来自域 1 的内容。也就是域别名

domain1 是一个 wordpress 网站。我正在尝试让 wordpress /category/page 作为域 2 的内容。事实上,域 2 应该只有一页内容可用,我们在其中设置了表单 2 电子邮件页面。

理想情况下,任何其他获取请求都应该明显地重定向到实际域。 自然,post 请求应该转到别名域 (2) 上的表单...

在谷歌上搜索相关的搜索字词会导致大量信息过载。我确定答案就在那里,我只是找不到这种确切情况的解决方案。同时我怀疑 Godaddy 正在缓存 .htaccess,这使得及时找到有效的解决方案变得更加困难。

我尝试了几种变体,在两次编辑之间等待 15 分钟,刷新浏览器缓存等。我似乎找不到正确的语法,和/或 Godaddy 缓存 .htaccess 超过 15 分钟。

我的最后一次尝试

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^www.domainalias.com$[OR]
RewriteCond %{HTTP_HOST} ^domainalias.com$
RewriteRule .* http://www.actualdomain.com/subdir/subdir/ [R=301,L] 

这似乎应该完全符合我的要求,但事实并非如此。 它确实在浏览器 URL 栏中显示域别名地址(好) 但是,它显示的主页来自http://www.actualdomain.com/ (BAD)

它应该显示http://www.actualdomain.com/subdir/subdir/,同时将 www.domainalias.com 保留在地址栏中。

我错过了什么?

【问题讨论】:

  • “看起来它应该完全按照我的意愿做,但它没有。” - 它看起来好像什么也没做。如果是这样,您在浏览器地址栏中看到http://www.actualdomain.com/subdir/subdir/,因为[R=301,L] 表示外部重定向。
  • 好的..谢谢你......但它甚至没有这样做,就好像条件被忽略了,没有重定向发生,可见或不可见......我在想L是表示最后一条规则.. ugh.

标签: php wordpress apache .htaccess mod-rewrite


【解决方案1】:

我仍然不完全确定为什么我之前的尝试根本没有重定向,无论是明显的还是不可见的。但是经过一些睡眠和更多阅读之后,我已经通过以下语法得到了我需要的东西。

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^DomainA.com
RewriteRule ^(.*) http://DomainB.com/PathToPageHere [P] 

【讨论】:

  • 睡眠部分在这里完成了工作。也就是说:您使用了永久重定向,该重定向缓存在您的浏览器中。之后,您的浏览器不再向服务器发出请求,而是执行浏览器缓存的响应。
  • 感谢您尝试提供有用的输入,但您没有阅读整个问题,例如这部分...“我尝试了几种变体,在编辑之间等待 15 分钟,刷新浏览器缓存等。我似乎找不到正确的语法,“通常你可以添加一个从未见过的查询字符串,比如“?foo=bar”并强制浏览器忽略缓存。至少在 Firefox 上运行良好。无论如何,Chrome 可能仍会使用缓存文件,因此刷新缓存确实是判断仅使用 Chrome 时更改是否有效的唯一方法。难道不是所有网络开发人员都可以访问至少 2 或 3 个浏览器吗?
猜你喜欢
  • 2016-06-29
  • 1970-01-01
  • 2012-02-10
  • 2011-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-13
相关资源
最近更新 更多