En gros, j'ai un lien dans mon html domain.com/app/css/build/app-23471942834.css
cependant sur le serveur le fichier se trouve en réalité dans /fs/current/public/css/build/app-23471942834.css
. Existe-t-il un moyen de vérifier si un fichier existe dans une RewriteCondition
? Le problème est que j'ai essentiellement besoin de vérifier la partie /css/build/app-23471942834.css
, sans le /app
. Existe-t-il un moyen de supprimer cela dans une condition?
Donc j'ai besoin de:
domain.com/app/login
soit réécrit en/fs/current/public/login
domain.com/app/build/css/app-123523.css
soit réécrit en/fs/current/public/build/css/app-123523.css
domain.com/app/build/js/app-123523.js
soit réécrit en/fs/current/public/build/js/build/app-123523.css
J'utilise Laravel donc dans mon répertoire public
il y a un autre .htaccess
par défaut avec ceci:
Options -MultiViews
RewriteEngine On
# Rediriger les barres obliques finales si ce n'est pas un dossier...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Gérer le contrôleur frontal...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
# Gérer l'en-tête d'autorisation
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
Désolé, mais je suis vraiment nul en fichiers .htaccess. Merci pour votre aide.
Ce que j'ai jusqu'à présent:
RewriteCond %{HTTP_HOST} ^(www.)?domain.de$ [NC]
RewriteCond %{DOCUMENT_ROOT}/fs/current/public/$1 -f
RewriteRule ^app/(.*)$ /fs/current/public/$1 [L]
RewriteCond %{HTTP_HOST} ^(www.)?domain.de$ [NC]
RewriteRule ^app/(.*)$ /fs/current/public/index.php?/$1 [L]
SOLUTION:
J'ai résolu mon problème de cette façon:
RewriteCond %{HTTP_HOST} ^(www.)?domain.de$ [NC]
RewriteCond %{REQUEST_URI} \.(css|jpg|gif|png|js|svg)
RewriteRule ^app/(.+)$ /fs/current/public/$1 [L]
Donc toutes les réécritures s'appliquent uniquement aux fichiers css/jpg/gif/png/js/svg. Je pense que le problème que j'avais auparavant était que le fichier index.php était également réécrit par le script.
0 votes
Qu'entendez-vous par "besoin de la partie
/css/build/app-23471942834.css
pour vérifier"? Apparemment,app-23471942834.css
n'existe jamais? Pourquoi avez-vous besoin de vérifier que la ressource existe? Ne pouvez-vous pas simplement la réécrire si elle correspond au modèle? Ou est-ce juste un exemple d'un tel modèle et avez-vous beaucoup de différents URLs/fichiers CSS et JS comme celui-ci?0 votes
Avez-vous plusieurs domaines/hôtes sur le même espace web? Sinon, la vérification
%{HTTP_HOST}
est inutile.