【问题标题】:Redirect specific URL to another URL on another subdomain将特定 URL 重定向到另一个子域上的另一个 URL
【发布时间】:2019-04-09 20:48:33
【问题描述】:

我在子域网站http://subdomain.example.com 上有 5 个 URL,我希望它们重定向到我的主网站 https://www.example.com/ 上的其他 5 个 URL。

重要提示:URL 的结构不同!

例子:

  1. http://subdomain.example.com/url1 应该重定向到https://www.example.com/ipsum

  2. http://subdomain.example.com/url2 应该重定向到https://www.example.com/lorem

我该如何处理?

更新:

有一个包含子域网站文件的play 文件夹(子域的名称)和一个包含www 网站文件的htdocs 文件夹。

这是我的play 文件夹中的.htaccess 文件:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule> 

【问题讨论】:

  • 你已经尝试了什么?您是否搜索过其他类似的问题?
  • @PatrickMevzek 是的,我做到了,但我看到的只是结构相同的情况(从:subdomain.example.com/lorem 到 www.example.com/lorem)
  • 相对于文件系统上的主域,子域指向哪里?还是它们完全不相关?您的.htaccess 文件中是否有任何现有指令?
  • @MrWhite 是同一个域,但它们似乎无关。在我的 FTP 中,我得到: - 一个包含子域网站文件的 play 文件夹(子域的名称) - 一个包含 www 网站文件的 htdocs 文件夹。这是我的play 文件夹中的.htaccess 文件&lt;IfModule mod_rewrite.c&gt; RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] &lt;/IfModule&gt;

标签: .htaccess redirect dns subdomain url-redirection


【解决方案1】:

由于子域有自己的.htaccess 文件,因此您无需在重定向中指定主机名。由于您在子域的.htaccess 文件中已经有了 mod_rewrite 指令,因此您还应该对这些重定向使用 mod_rewrite(以避免冲突)。否则,您需要一一指定这些重定向。

在子域的 /play/.htaccess 文件顶部尝试以下操作。请注意,这需要文件中的现有指令之前进行。

# Specific redirects
RewriteRule ^url1$ https://www.example.com/ipsum [R=302,L]
RewriteRule ^url2$ https://www.example.com/lorem [R=302,L]

上面将匹配http://subdomain.example.com/url1 的请求并相应地重定向,等等。

请注意,RewriteRule 模式(正则表达式)在每个目录 (.htaccess) 上下文中使用时不以斜杠开头。

请注意,这些是 302(临时)重定向。将它们更改为 301(永久) - 如果这是您的意图 - 只有在您确认它们工作正常(以避免缓存问题)后。

【讨论】:

    【解决方案2】:

    试试这个...

    Redirect 301 http://subdomain.example.com/url1 https://www.example.com/ipsum
    Redirect 301 http://subdomain.example.com/url2 https://www.example.com/lorem
    

    【讨论】:

    • 由于 OP 已经声明他们在这种情况下使用 mod_rewrite,因此建议对这些重定向也使用 mod_rewrite;不是 mod_alias Redirect 指令。 mod_rewrite 先执行,不管指令的顺序,所以前端控制器在重定向发生之前 不必要地重写 URL。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-29
    • 1970-01-01
    • 1970-01-01
    • 2018-10-27
    • 2017-11-29
    相关资源
    最近更新 更多