2016-06-28 5 views
1

je la règle de réécriture apache suivante:Passer une chaîne dans regex

000-default.conf: RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 

Comment pourrais-je changer cela pour tout permettre, sauf si la chaîne suivante est dans l'url: tab=availability?

+0

rewritecond .... –

+0

@MarcB pourrait vous montrer dans une s'il vous plaît réponse? – David542

Répondre

1

Vous pouvez utiliser la négation en soi RewriteRule:

RewriteRule !tab=availability https://%{HTTP_HOST}%{REQUEST_URI} [L,NC,R] 

Cela va rediriger toutes les requêtes avec URI ne contenant pas de motif donné. Toutefois, si vous utilisez ci-dessus règle .htaccess alors mieux ajouter

RewriteCond %{HTTPS} off 

pour éviter la boucle de redirection.

En outre, si vous voulez éviter de correspondance de motif donné partout dans l'URL, y compris QUERY_STRING puis utilisez THE_REQUEST variable dans votre état:

RewriteCond %{HTTPS} off 
RewriteCond %{THE_REQUEST} !tab=availability [NC] 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,NC,R]