首页 > 解决方案 > 将特定 URL 重定向到另一个子域上的另一个 URL

问题描述

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

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

例子:

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

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

  3. 等等

我该如何处理?

更新:

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

这是.htaccessplay文件夹中的文件:

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

标签: .htaccessredirectdnssubdomainurl-redirection

解决方案


由于子域有自己的.htaccess文件,因此您无需将主机名指定为重定向的一部分。而且由于您在子域的文件中已经有了 mod_rewrite 指令,因此.htaccess您还应该对这些重定向使用 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(永久) - 如果这是有意的 - 仅在您确认它们工作正常(以避免缓存问题)后。


推荐阅读