根据条件Apache Httpd.conf重定向URL

时间:2017-04-24 09:22:45

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

我正在使用Apache Web服务器" httpd-2.4.25-win64-VC14"它与JBoss集成在一起。端口重定向工作正常。现在我想根据某些条件替换网址,如果网址包含'Mobile',那么我想将其替换为'Mobile/web'并转发它。

为此,我使用<Directory>标记中的<VirtualHost>标记。现在,我发现的大多数在线参考文件都在'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 请建议

1 个答案:

答案 0 :(得分:0)

看起来您只想在查询字符串包含单词时重定向&#34; manage&#34;:

<Label  FontSize="small"  Text="Joe"></Label>
<Label  FontSize="Large"  Text="Joe"></Label>

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

RewriteCond %{QUERY_STRING} (manage)

重写规则如下:

RewriteCond %{QUERY_STRING} (!manage)

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

  

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

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