.htaccess - 将特定 URL 重定向到另一个子域上的另一个 URL
问题描述
我在子域网站上有 5 个 URL http://subdomain.example.com
,我希望它们重定向到我的主网站上的 5 个其他 URL https://www.example.com/
,.
重要提示: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>
解决方案
由于子域有自己的.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(永久) - 如果这是有意的 - 仅在您确认它们工作正常(以避免缓存问题)后。
推荐阅读
- c# - 如何正确使用 decimal.TryParse 和 decimal.Parse
- vba - 比较字段以允许操作
- java - 以编程方式更改 TextView 的 topConstraint
- python - 如何加速这个瓶颈:在 Python 中多次加载字典
- php - 致命错误:未捕获的错误:在 wordpress 中调用 null 上的成员函数 insert()
- google-apps-script - 按 ID 查找 Google Apps 脚本
- ios - 使用共享扩展时从 swift 检索图像到 typescript
- android - 工作代码突然停止工作 - 为什么?
- java - 从 pdf 中的 html 文本块访问内部 PDF 链接
- testing - Puppeteer Chromium,禁用“匿名化 WebRTC 公开的本地 IP”