【发布时间】: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