【问题标题】:How to setup request proxy using URL rewriting如何使用 URL 重写设置请求代理
【发布时间】:2017-05-10 22:44:57
【问题描述】:

我有一个电子商务网站,位于:

http://dev.gworks.mobi/

当客户点击 signin 链接时,浏览器会被重定向到另一个域,以便进行身份验证:

http://frock.gworks.mobi:8080/openam/XUI/#login/&goto=http%3A%2F%2Fdev.gworks.mobi%3A80%2Fcustomer%2Faccount%2Flogin%2Freferer%2FaHR0cDovL2Rldi5nd29ya3MubW9iaS8%2C%2F

我正在尝试将http://dev.gworks.mobi/* 重写为http://frock.gworks.mobi:8080/openam/*,而不进行重定向。

我已经在dev.gworks.mobi 网站的.htaccess 中尝试过这个:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_URI} ^/openam(.*)$ [NC]
    RewriteRule ^(.*)$ http://frock.gworks.mobi:8080/$1 [P,L]
</IfModule>

但是当我访问http://dev.gworks.mobi/openam 时,它会显示一个404 page not found 页面。

谁能帮我实现我的用例?

【问题讨论】:

  • http://frock.gworks.mobi:8080/openam 是否以正确的页面或 404 响应?
  • 这是一个有效链接,它被重定向到http://frock.gworks.mobi:8080/openam/XUI/#login/。如果我访问 http://dev.gworks.mobi/openam/XUI/#login/ 它也会产生相同的结果 404。

标签: apache .htaccess mod-rewrite url-rewriting mod-proxy


【解决方案1】:

试试这个:

RewriteEngine on
RewriteBase /

# Make sure it's not an actual file being accessed
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# Match the host
RewriteCond %{HTTP_HOST} ^dev\.gworks\.mobi

# Rewrite the request if it starts with "openam"
RewriteRule ^openam(.*)$ http://frock.gworks.mobi:8080/$1 [L,QSA]

这会将所有对dev.gworks.mobi/openam的请求重写为frock.gworks.mobi:8080

如果您想以一种对访问身份验证应用程序的访问者不可见的方式屏蔽 URI,则需要添加 P flag请注意,它需要 Apache 的mod_proxy module

RewriteRule ^openam(.*)$ http://frock.gworks.mobi:8080/$1 [P,L,QSA]

如果这不是最后的重写规则,请随意删除 L 标志。请参阅RewriteRule Flags 了解更多信息。

404

如果一切就绪,但您仍然收到 404 错误,请确保目标 URL 首先没有引发 404 错误。

其次,检查您是否仍然收到设置正确引荐来源网址的错误。如果没有正确设置引荐来源网址,它可能会以抛出 404 的方式设计。如果是这种情况,我怀疑,您需要使用 R 标志并重定向而不是代理请求。

我想到的最后一件事是,一些 web 应用程序不是以找出 URI 地址的方式构建的。主机以及端口号可能在配置文件的某处被硬编码。确保身份验证应用能够从另一个 URL 运行,而无需编辑配置。

测试

您可以在线test the rewriterule

【讨论】:

    猜你喜欢
    • 2019-06-21
    • 1970-01-01
    • 2020-01-19
    • 2017-06-19
    • 1970-01-01
    • 2013-04-23
    • 2015-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多