2017-09-04 1 views
0

je suis en train de achaive cela,appliquer la règle de réécriture sur la base 404 du code réponse

if request hit www.imagesserver.com/public/images/view/3421.png 

puis

if response == 404 

font

redirect ou réécrivent à

www.imagesserver.com/public/images/view/defualt.png 

ceci s'applique seulement pour ce pub de chemin . Lic/images/view/* .png, quelle est la meilleure façon d'atteindre cette logique

+0

ne est pas un répertoire valide cartographiés via l'application – Jecki

+0

oui est un vrai dir – Jecki

Répondre

1

Vous pouvez utiliser cette règle dans public/images/view/.htaccess (créer si n'existe pas):

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(?!.+/defualt\.png$).+\.png$ /public/images/view/defualt.png [L,NC,R=307] 
+0

le chemin public/images/view/est n'existe pas dans le système de fichiers son géré via l'application – Jecki

+0

Pas de problèmes, vous pouvez garder cette règle dans 'public/.htaccess' (si elle existe) ou dans le site racine .htaccess – anubhava

+0

son par 404 pas de règle de réécriture tiré – Jecki

0

Vous pouvez » t vraiment faire cette fois la 404 a été émis, mais vous pouvez le faire à l'avance:

RewriteCond ${REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !\.(jpg|png)$ 
RewriteRule ^public/images/view/.* /public/images/view/defualt.png [L,R=301] 

ce vérifie si la ressource est un fichier ou un répertoire et applique uniquement la règle sinon.

Il s'assure également que la ressource demandée possède des extensions d'image spécifiques - jpg/png dans ce cas mais vous pouvez l'étendre en utilisant le motif évident si nécessaire.

Ensuite, la règle de réécriture ne se déclenche que si ces conditions sont remplies dans /public/images/view/.

Ensuite, je définis cela pour émettre une redirection 301 de la ressource manquante à l'image par défaut afin de montrer clairement au client que l'image est manquante.

Note: pas sûr si délibéré, mais vous avez une faute de frappe dans votre nom de fichier image par défaut: defualt.png