【问题标题】:Redirect URL based on condition Apache Httpd.conf根据条件重定向 URL Apache Httpd.conf
【发布时间】:2017-09-20 21:50:41
【问题描述】:

我正在使用与 JBoss 集成的 Apache Web 服务器“httpd-2.4.25-win64-VC14”。端口重定向工作正常。现在我想根据某些条件替换 URL 假设 URL 包含 'Mobile' 然后我想用 'Mobile/web' 替换它并转发它。

为此,我使用 <Directory> 标签包含在 <VirtualHost> 标签中。现在我发现的大多数在线参考都在标签前面有 URL,例如 'var/www/example',但我想基于 localhost 重定向,因为我在本地运行 Jboss。

那么我应该如何写标签内容,我尝试了下面的

<VirtualHost *:80>          
    <Directory /var/www/example/>
        Allow From All
        RewriteEngine On
        RewriteCond %{QUERY_STRING} (manage)
        RewriteRule ^Mobile http://%{HTTP_HOST}/Mobile/web=%1 [NC,L]
    </Directory>
</VirtualHost>

喜欢http://localhost:8081/Mobile/register 应该替换为http://localhost:8081/Mobile/web/register 请推荐

【问题讨论】:

    标签: apache redirect url-rewriting jboss httpd.conf


    【解决方案1】:

    您似乎只想在查询字符串包含单词“manage”时进行重定向:

    RewriteCond %{QUERY_STRING} (manage)
    

    如果您想在查询字符串不包含某个单词时进行重定向,您可以使用如下模式:

    RewriteCond %{QUERY_STRING} (!manage)
    

    还有这样的重写规则:

     RewriteRule ^Mobile /Mobile/web/register [NC,L,QSA]
    

    QSA 在这里可能会有所帮助:

    将原始请求 URL 中的任何查询字符串附加到任何查询 在重写目标中创建的字符串。

    此解决方案将传递所有查询字符串参数并从 http://localhost:8081/Mobile/register?arg1=value1&arg2=value2 重定向到 http://localhost:8081/Mobile/web/register?arg1=value1&arg2=value2

    【讨论】:

      猜你喜欢
      • 2018-10-12
      • 2016-03-10
      • 1970-01-01
      • 1970-01-01
      • 2014-04-16
      • 1970-01-01
      • 1970-01-01
      • 2017-02-20
      • 1970-01-01
      相关资源
      最近更新 更多