我在子域网站http://subdomain.example.com
上有5个URL,我希望它们重定向到我的主网站https://www.example.com/
上的5个URL。
重要提示:URL的结构不同!
示例:
http://subdomain.example.com/url1
应该重定向到https://www.example.com/ipsum
http://subdomain.example.com/url2
应该重定向到https://www.example.com/lorem
等。
我该如何处理?
更新:
有一个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>
答案 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