apache - 将 NGINX 重写规则转换为 Apache htaccess
问题描述
我有一个客户正在从 NGINX 网络服务器迁移到 Apache。一切都很简单,没有什么复杂的,但是因为我是一个 NGINX 人,我忘记了如何将 NGINX 重写规则转换为 apache 规则。
例如,这些是 NGINX 重写
rewrite ^/Tower-Topics-Calendar/?$ https://$host/events/ permanent;
我如何将类似的东西转换.htaccess
为与 Apache 一起使用?
解决方案
rewrite ^/Tower-Topics-Calendar/?$ https://$host/events/ permanent;
这看起来像是一个外部 301 重定向/Tower-Topics-Calendar
(带有和不带有斜杠)到https://<host>/events/
-<host>
请求中的主机名相同,并且您在目标中明确声明了 HTTPS 协议。
.htaccess
您可以使用 mod_rewrite 实现此目的。例如:
RewriteEngine On
RewriteRule ^Tower-Topics-Calendar/?$ https://%{HTTP_HOST}/events/ [R=301,L]
RewriteRule
请注意模式中没有斜杠前缀。
但是,如果您不需要特别包含 HTTPS 方案(即,这已经规范化),那么您可以使用单个 mod_aliasRedirectMatch
指令。例如:
RedirectMatch 301 ^Tower-Topics-Calendar/?$ /events/
或者,要包含 HTTPS 协议,您需要对主机名进行硬编码:
RedirectMatch 301 ^Tower-Topics-Calendar/?$ https://example.com/events/
推荐阅读
- php - 在循环中使用 curl 将数据从数据库中获取的数字发送到客户端
- javascript - 通过 buttonclick 渲染 EJS 视图
- android - ImageView 未显示
- haskell - 我可以从具有关联类型族的类的实例中删除类型实例化吗?
- node.js - node.js - 正则表达式:在三重胡须之间放置空格( {{{ => { {{ )
- c# - 在导出的 xlsx 文件中显示警告消息
- java - 如何通过 Spring Boot 访问需要 OAuth2 的外部 URL?
- python - 如何使用 python 的 elasticsearch 库自动生成索引名称?
- jsf - JSF 复合组件递归中的 StackOverflowError
- node.js - React 部署/运行选项