将特定 URL 重定向到另一个子域上的另一个 URL

Redirect specific URL to another URL on another subdomain

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

上的其他 5 个 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> 

由于子域有自己的 .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 的请求并相应地重定向等

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

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

试试这个...

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