2015-09-25 1 views
3

htaccess pour le serveur apache car tous mes serveurs IIS seront en maintenance. J'ai besoin de rediriger tout à l'erreur 503 page personnalisée et aussi renvoyer l'erreur 503, mais je ne connais pas la solution correcte.Rediriger toutes les pages sauf une vers l'erreur 503 page personnalisée

RewriteEngine on 
RewriteBase/

ErrorDocument 503 /503.html 

RewriteRule ^.*$ - [L,NC,R=503] 

Ce résultat en ceci: (la réponse n'est pas ma réponse personnalisée)

Service Unavailable 

The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later. 

Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request. 

Un autre essai:

RewriteEngine on 
RewriteBase/

ErrorDocument 503 /503.html 

RewriteRule ^(?!503.html)$ - [L,NC,R=503] 

Donne-moi ce que je dois, mais juste pour www.domain. com et toutes les autres pages me donne 404 (sauf www.domain.com/503.html qui me donne 200).

Donc ce dont j'ai besoin est de rediriger chaque page, sauf la page domain.com/503.html, vers la page d'erreur personnalisée 503 et de renvoyer le code d'erreur.

Répondre

1

Vous pouvez utiliser la négation:

RewriteEngine on 

ErrorDocument 503 /503.html 

RewriteRule !^503\.html$ - [L,NC,R=503] 
1

Vous avez utilisé les deux ancres dans le second jeu de règles. Ce serait aussi simple que:

RewriteEngine on 
RewriteBase/

ErrorDocument 503 /503.html 

RewriteRule ^(?!503.html).* - [R=503,L,NC] 
+0

merci, cela fonctionne aussi – Dracke