2010-02-02 4 views
2

Mon fichier actuel htaccess ressemble à ceci:règle Rewrite à l'exception du contenu statique

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f [NC] 
RewriteCond %{REQUEST_FILENAME} !-d [NC] 
RewriteRule ^(.*)$ index.php?page=$1 [L,QSA] 

Cela fonctionne bien pour moi, mais je veux essayer de réduire la charge du serveur, donc je l'ai ajouté cette ligne juste en dessous du RewriteEngine en ligne pour arrêter le traitement si le chargement du contenu statique:

RewriteCond %{REQUEST_FILENAME} !.*jpg$|.*gif$|.*png$|.*css$|.*js$|.*txt$|.*ico$|.*pdf$ [NC] 

Est-ce la façon la plus efficace de l'écrire? Merci

Répondre

3

Dans ligne 2 vous vérifiez déjà l'existence du fichier demandé (!-f), donc il n'est pas nécessaire d'ajouter votre ligne, mais vous pouvez remplacer la ligne 2 avec votre nouvelle condition de réécriture, si vous voulez éviter d'autres des fichiers comme des fichiers .php. Performancewise Je ne pense pas que cela accélérera Apache, et il y a un autre trou de performance dans votre application web.

Cela dit, votre motif n'est probablement pas ce que vous attendiez d'être, par exemple. .*jpg$ correspond également à mysuperjpg. Vous cherchez peut-être \.jpg$, parce que. est un caractère spécial pour les expressions régulières. Vous pouvez le faire:

RewriteCond %{REQUEST_FILENAME} !\.(jpg|gif|png|css|js|txt|ico|pdf)$ [NC] 
Questions connexes