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

时间:2018-11-06 12:49:11

标签: .htaccess redirect dns subdomain url-redirection

我在子域网站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

  3. 等。

我该如何处理?

更新:

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

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

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

2 个答案:

答案 0 :(得分: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(永久)-如果您打算这样做,则仅在您确认它们可以正常工作(避免缓存问题)后再更改。

答案 1 :(得分:0)

尝试一下...

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