2017-04-24 3 views
0

J'utilise le serveur web Apache "httpd-2.4.25-win64-VC14" qui est intégré à JBoss. La redirection de port fonctionne correctement. Maintenant, je veux remplacer l'URL en fonction de certaines conditions disons si l'URL contient 'Mobile' puis je veux le remplacer par 'Mobile/web' et le transférer.URL de redirection basée sur la condition Apache Httpd.conf

Pour cela, j'utilise l'étiquette <Directory> incluse dans <VirtualHost>. Maintenant, la plupart des références en ligne que je trouve sont d'avoir des URL en face de la balise comme 'var/www/example' mais je veux rediriger basé sur localhost comme je cours Jboss locallly.

Alors, comment dois-je écrire le contenu d'étiquette, je l'ai essayé avec le dessous

<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> 

Comme http://localhost:8081/Mobile/register devrait être remplacé par http://localhost:8081/Mobile/web/register S'il vous plaît Proposer

Répondre

0

Il semble que vous souhaitez rediriger uniquement lorsque la requête La chaîne contient un mot "gérer":

RewriteCond %{QUERY_STRING} (manage) 

Si vous souhaitez effectuer une redirection lorsque la chaîne de requête ne l'est pas contiennent un certain mot que vous pouvez utiliser un modèle comme celui-ci:

RewriteCond %{QUERY_STRING} (!manage) 

Et la règle de réécriture comme celui-ci:

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

QSA peut être utile ici:

Ajoute une chaîne de requête de l'URL de demande d'origine à toute requête chaîne créée dans la cible de réécriture.

Cette solution passera tous les paramètres de chaîne de requête et rediriger de http://localhost:8081/Mobile/register?arg1=value1&arg2=value2-http://localhost:8081/Mobile/web/register?arg1=value1&arg2=value2.