【问题标题】:Force Lowercase URL for Reverse Proxy on Ubuntu Apache Server在 Ubuntu Apache 服务器上强制使用小写 URL 进行反向代理
【发布时间】:2012-07-20 13:50:32
【问题描述】:

如何重写传入的请求,使其全部为小写?我环顾四周,一些答案是使用重写模块,但这些不是针对使用反向代理的特定情况。

我想要的是这样的请求:

http://mywebsite/SomeApPlIcAtIon

要转换成这个:

http://mywebsite/someapplication/

有什么建议吗?

更新:

我已经按照我认为应该正确的方式设置了它,我的 httpd.conf 看起来像这样:

servername localhost
RewriteEngine on
RewriteLog "/var/log/apache2/rewrite.log"
RewriteLogLevel 9
RewriteMap lc int:tolower
RewriteCond %{REQUEST_URI} [A-Z]
RewriteRule (.*) ${lc:$1} [R=301,L]

我的反向代理设置在 conf.d 中一个名为 sabnzbd.conf 的文件中:

ProxyRequests Off
ProxyPreserveHost On
<Proxy *>
    Order allow,deny
    Allow from all
</Proxy>
ProxyPass /sabnzbd/ http://192.168.21.21:9999/sabnzbd/
ProxyPassReverse /sabnzbd http://192.168.21.21:9999/sabnzbd/

在我启用的站点中,我的 000-默认我将所有 AllowOverride 设置为 All

当我转到 192.168.21.21/sabnzbd/ 时,它工作得很好。

当我转到 192.168.21.21/SABNZBD/ 时,我得到一个 404。重写规则不起作用。

当我去我的重写日志文件检查它时,没有数据。

出了什么问题?

【问题讨论】:

标签: apache ubuntu apache2 reverse-proxy


【解决方案1】:

假设您在 Ubuntu 上使用 Apache 服务器 - 您可以使用 mod_rewrite 模块。

您可以关注此博客(网址:http://www.chrisabernethy.com/force-lower-case-urls-with-mod_rewrite/),它描述了配置模块的步骤。

【讨论】:

  • 我不确定的是,重写规则应该去哪里。我目前没有使用 .htaccess 文件。它应该放在 httpd.conf 中吗?
  • 从技术上讲,它可以以任何一种方式工作 - .htaccess 文件仅适用于放置它的文件夹和子文件夹。建议将规则放在 httpd.conf 文件中。除非需要,否则不应使用 .htaccess 文件 - 它存在性能和安全问题。可以参考Apache官方文档。
猜你喜欢
  • 2017-09-08
  • 1970-01-01
  • 1970-01-01
  • 2020-07-12
  • 2014-09-23
  • 2013-04-02
  • 2013-05-22
  • 1970-01-01
  • 2018-08-23
相关资源
最近更新 更多