【问题标题】:Apache URL rewrite with multiple param replacement使用多个参数替换的 Apache URL 重写
【发布时间】:2015-05-30 19:05:31
【问题描述】:

在 apache 重写条件方面需要帮助:

原始网址:

http://www.test.foo.com/SSO/login?service=http%3A%2F%2Fwww.bar.com%2Fc% 2Fportal%2Flogin

我需要的是:

https://www.test.foo.com/SSO/login?service=http%3A%2F%2Fwww.test.foo.com% 2Fc%2Fportal%2Flogin

以下是我的配置:

 <VirtualHost *:80>

    ServerName www.test.foo.com
    ServerAdmin admin@www.test.foo.com
    ServerAlias www.test.foo.com

    LogLevel warn
    ErrorLog /var/log/apache2/www.test.foo.com.error.log
    CustomLog /var/log/apache2/www.test.foo.com.access.log combined

    ProxyRequests On
    ProxyVia On

    <Proxy *>
    AddDefaultCharset Off
    Order deny,allow
    Allow from all
    </Proxy>

    RewriteEngine On
    RewriteCond %{HTTPS} !=on
    RewriteCond %{QUERY_STRING} ^(.*?)www\.bar\.com(.*)$ [NC]
    RewriteRule ^/?(SSO/.*)$ https://www.test.foo.com/$1?%1www.test.foo.com%2 [R,NE,L]

    ProxyPass / ajp://localhost:8009/
    ProxyPassReverse / ajp://localhost:8009/

</VirtualHost>

通过以上配置,我可以从 http 重定向到 https。现在问题出在请求标头位置我仍然得到 ​​p>

http://www.test.foo.com/SSO/login?service=http%3A%2F%2Fwww.bar.com%2Fc% 2Fportal%2Flogin

任何人都可以帮助我或建议我重写条件吗?

【问题讨论】:

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


    【解决方案1】:

    您可以在RewriteEngine On 行下方插入此规则:

    RewriteEngine On
    
    RewriteCond %{HTTPS} !=on
    RewriteCond %{QUERY_STRING} ^(.*?)www\.bar\.com(.*)$ [NC]
    RewriteRule ^/?(SSO/.*)$ https://www.test.foo.com/$1?%1www.test.foo.com%2 [R,NE,L]
    

    【讨论】:

    • 感谢您的回答。你让我很开心......但是,如果我看到来自网络的请求标头,它仍然会显示位置中的旧 URL。“”位置:/www.test.foo.com/SSO/login?service= http%3A%2F%2Fwww.bar.com%2Fc%2Fportal%2Flogin%3Fp_l_id%3D11419>"" 对此有何想法??
    • 但是,如果我看到来自网络的请求标头,它仍然会显示位置中的旧 URL。""位置:/SSO/login?service= http%3A%2F%2Fwww.bar.com%2Fc%2Fportal%2Flo‌​gin%3Fp_l_id%3D11419>""对此有什么想法吗??
    • 此规则是将该 URL 重定向到新的。如果某些 html 源仍在发送旧 URL,那么您会看到它。
    猜你喜欢
    • 2012-11-22
    • 2011-10-13
    • 1970-01-01
    • 2018-07-31
    • 2016-07-29
    • 1970-01-01
    • 2012-10-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多