【问题标题】:rewrite subdomain url to www apache php (using slim framework)将子域 url 重写为 www apache php(使用 slim 框架)
【发布时间】:2017-01-08 23:00:22
【问题描述】:

我有一个使用 api 的 Angular 网站。现在我想创建自动登陆页面。

我的 api url 是这样 (https://) system.mydomain.com/api - 它是一个使用 slim 框架的 rest api

现在我已经为 (https://) system.mydomain.com/content/seo-name-of-item 等登陆页面创建了路由

这可行,但我不想在这种情况下显示“system.mydomain.com”(所以在 URI“内容”中),但我希望它是(https://)mydomain.com/content/seo -name-of-item 或/和 (https://) www.mydomain.com/content/seo-name-of-item

获得这种行为的最佳方法是什么?

【问题讨论】:

  • 请记住,对于三个主机名 system.mydomain.commydomain.comwww.mydomain.com,您需要单独的有效 ssl 证书。或者是昂贵的“通配符证书”。
  • 最佳方法?好吧,您实现重写规则执行外部重定向(更改浏览器中可见的 URL)或使用内部代理模块来代理单独 http 主机之间的请求(URL 和主机名不会更改在浏览器中)。
  • 我的域有一个通配符证书
  • 嗯,是的,我可以从该 url 重定向到另一个 URL,但所有逻辑都在 system.mydomain.com/content/something 中完成 - 这是在 slim 框架中制作的路由,它可以正常工作不希望访问者看到系统。如果我重定向我必须在一个单独的文件夹中执行逻辑,这会失去我从苗条框架中获得的所有力量
  • 我跟不上那里。即使 if 您进行了外部重定向,您也可以毫无问题地为生成的请求添加一些内部重写,从而将请求映射到您在内部使用的任何布局。这仅意味着您的 http 主机名在 URL 中发生了变化。但正如所说:使用内部代理模块,您甚至可以防止这种情况。请参阅下面的答案。

标签: apache mod-rewrite url-rewriting slim


【解决方案1】:

最优雅的可能是结合重写规则使用 apaches 代理模块。这使浏览器中可见的 URL 保持不变,但在内部代理了其他单独的 http 主机之间的请求。

在主机www.example.com 和/或example.com 主机中使用这样的规则:

RewriteEngine on
RewriteRule ^/?content/seo-name-of-item https://system.example.com/api [END,P]

语法应该在真正的 http 主机配置或htaccess 样式文件中有效。但一般提示:您应该始终喜欢将此类规则放在 http 服务器主机配置中,而不是使用 .htaccess 样式文件。众所周知,这些文件容易出错,难以调试,而且它们确实会降低服务器的速度。它们仅在您无法控制主机配置的情况下(阅读:非常便宜的托管服务提供商)或如果您的应用程序依赖于编写自己的重写规则(这是一个明显的安全噩梦)提供它们作为最后一个选项)。

如果您收到内部服务器错误(http 状态 500),您可能需要将 END 标志替换为旧的 L 标志。

对于外部可见的主机名,您需要可验证的 ssl 证书,因此是 www.example.com 和/或 example.com

您还可以决定在内部使用 http 作为内部代理连接,因为 ssl 加密在那里没有真正意义。

哦,显然您需要安装代理模块。

另一种方法是仅使用代理模块。查看ProxyPass规则的文档和示例:https://httpd.apache.org/docs/current/mod/mod_proxy.html

【讨论】:

  • 所以当有人访问 system.mydomain.com/content/something - 它会将 www.mydomain.com/content/something 显示为 url ? “某事”部分也需要是可变的,
  • 没有。这允许输入 https://www.example.com/content/seo-name-of-item 的人在浏览器中看到该 URL,同时由您在 https://system.example.com/api 上的设置处理和响应它。
猜你喜欢
  • 2014-03-04
  • 2013-12-07
  • 1970-01-01
  • 2016-04-04
  • 1970-01-01
  • 1970-01-01
  • 2013-01-05
  • 1970-01-01
  • 2015-01-04
相关资源
最近更新 更多