【问题标题】:.htacces redirect from domain 1 to domain 2 subdir, keeping path.htaccess 从域 1 重定向到域 2 子目录,保留路径
【发布时间】:2020-09-07 23:52:56
【问题描述】:

我在这个论坛上找到了很多有用的答案,这些答案让我明白了我的意思,但是我的 .htaccess 重定向配置仍然不是 100% 完美。

设置

我注册了两个域:

  • domain1.is(仅限域)
  • domain2.me(域名+主机)

domain1 将所有内容作为通配符重定向到 domain2。

我要做什么

我已经在domain2.me/yourls 上安装了你的(url 缩短),并希望将所有domain1.is/randomstring 重定向到domain2.me/yourls/randomstring

RewriteEngine on
RewriteCond %{HTTP_HOST} ^domain1\.is$
RewriteRule (.*) https://domain2.me/yourls/$1 [R=301,L]
RewriteRule ^$ store [L,R=301]

问题

到目前为止,我知道domain1.is/randomstring 转到domain2.me/randomstring,但是 .htacess 文件中的子目录似乎被完全忽略了,实际上导致整个系统无法使用。

我尝试过添加条件、更改子目录等,但似乎找不到原因。有人可以帮忙吗?

提前感谢柏林的欢呼!

【问题讨论】:

  • 如果没有当前的重写规则,我们将无能为力。请尽快添加。
  • @arkascha 完成!抱歉花了一段时间:)
  • “到目前为止,我知道 domain1.is/randomstring 转到 domain2.me/randomstring - 这就是您之前所拥有的:“domain1 将所有内容作为通配符重定向到 domain2” 由于已经存在的重定向,可能发生在更早/更高级别,我敢打赌RewriteCond %{HTTP_HOST} ^domain1\.is$ 在这里永远不会成为真的。
  • @CBroe 我怀疑可能是这种情况,但我是 .htaccess 的新手,不知道如何测试它。
  • 我认为你唯一的选择是在用户登陆后重写或重定向domain1.is/randomstring。如果你可以重写任何匹配该格式的东西,只要它不匹配任何物理上存在的文件或文件夹,那应该很容易(研究如何在重写时执行这种检查,如果你不知道。)但是如果您有其他相同格式的“假” URL,需要在其他地方重定向/重写……那么您要么需要尝试更具体地了解 randomstring 的实际外观,要么为特定 URL 添加例外.

标签: .htaccess redirect subdirectory


【解决方案1】:

我将分享我的解决方案,以防其他人偶然发现此对话。详细信息/历史记录在问题的 cmets 中。

TLDR;

只需设置通配符重定向到子目录。

(不确定第一个重定向是否有用,但仍然有用)。 重要的一点:您甚至不需要触摸 .htaccess 文件(在我的特殊情况下,您已经有了一个,所以我保持原样)。

致谢:感谢@CBroe 为我指明了正确的方向。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-27
    • 1970-01-01
    • 2014-09-18
    • 2018-04-26
    • 2014-03-06
    • 1970-01-01
    • 2013-01-29
    • 1970-01-01
    相关资源
    最近更新 更多