.htaccess - .htaccess 和重写规则的问题
问题描述
我正在将格式为www.mydomain.co或 mydomain.co 的域重定向到 mysd.herokuapp.com/public/index.html 并且效果很好。但是,我希望浏览器中的 url 显示www.mydomain.co或 mydomain.co 的初始格式,所以我添加了一个具有以下重写规则的 .htaccess 文件:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^mysd.herokuapp.com/public
RewriteRule ^(.*) https://mydomain.co/$1 [P]
现在,这是我在另一个域上使用的相同规则,它可以正常工作并显示初始 url,但由于某些原因在另一个站点上它不起作用。
这两个站点都托管在 Heroku 上。唯一的区别是域名的注册位置。
- 谁能向我解释为什么它可以在一个域而不是另一个域上工作?
- 我的重写规则错了吗?
- DNS 记录是否存在问题?由于域在不同的位置注册,因此重定向的设置略有不同。On 在godaddy 使用域转发,其他用户使用url 重定向记录。
感谢您的澄清和帮助。
解决方案
根据我从您的问题中了解到的情况,这是您的情况:
您有一个旧域“mydomain.co”并将您的内容移动到 heroku,因此您的实际新 URL 是“mysd.herokuapp.com”。您想继续使用旧域名和代理请求,以便通过旧域名发布来自 heroku 的内容。
您可以使用 apache 代理模块来做到这一点。但是该模块需要在服务“mydomain.co”的 http 服务器中加载和激活。
RewriteEngine On
RewriteRule ^ https://mysd.herokuapp.com%{REQUEST_URI} [P]
这假设您的内容结构在两个系统上是相同的。
如果您从同一个 http 服务器为两个域提供服务,则需要添加一个条件来防止代理循环:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?mydoain\.co$
RewriteRule ^ https://mysd.herokuapp.com%{REQUEST_URI} [P]
但是,请考虑您为这种方法支付的性能损失。对于以这种方式处理的每个请求,您都需要等待整整第二轮请求。这将使您的内容服务缓慢。确定这是你想要的吗?
推荐阅读
- ruby-on-rails - 如何以 x 个月的步长从当前月份查找月份数组
- pkcs#11 - 使用 SO 用户启用其“EXPORT”属性后如何创建 HSM 密钥“PRIVATE”?
- php - 如何使用 PHP 备份除文件夹 X 之外的整个文件夹
- java - 如何在方法中指定从 SQLiteOpenHelper 继承的类中创建的数据库的路径?
- parsing - 如何设计依赖解析器来识别句子之间的依赖关系?
- mongodb - 使用 find() 进行 if-else 类型查询的猫鼬
- eclipse - 如何修改 jetty-home-11.0.6\etc\*.xml 文件
- powershell - Get-ADUser -filter 参数怪癖
- python - 在 google cloud sql server 中使用 flasksql alchemy 创建数据库
- python - 自动审核 Discord.py 机器人消息错误?