Skip to content

Instantly share code, notes, and snippets.

@sdeluce
Created March 21, 2014 09:43
Show Gist options
  • Select an option

  • Save sdeluce/9682815 to your computer and use it in GitHub Desktop.

Select an option

Save sdeluce/9682815 to your computer and use it in GitHub Desktop.
############################################################################################
## The Master .htaccess
##
## Version 3.3 fr
##
##-----------
## Ce fichier est conçu pour être le modèle de fichier .htaccess
## à mettre sur vos nouveaux sites, augmenter la sécurité et
## la performance de votre site. Il n'est pas destiné à être juste mis
## sur votre site. Vous devez passer par toutes ses sections et de le modifier
## en fonction de votre site. Plus particulièrement, toutes les instances
## de example.com doivent être remplacés avec votre nom de domaine réel.
##
## Certaines sections sont trop pointilleux et peuvent causer des problèmes
## avec les demandes légitimes. Vous êtes responsable de les désactiver
## ou de l'écriture des règles d'exception pour vos demandes.
## Plus particulièrement, la section de la protection des serveurs de pointe
## entraînera des problèmes avec plusieurs minifiers, eXtplorer, VirtueMart
## et autres extensions qui utilisent des scripts non-standard que leurs points d'entrée.
## Vous devez ajouter des exceptions pour eux manuellement.
##
## Certaines sections en fonction de la configuration de votre serveur
## peuvent causer votre site des 500 Internal Server Error.
## La seule façon de savoir laquelle est la cause est d'essayer et de voir.
##
## Je vous remercie Brian Teeman, Ken Crowder, Radek Suski et Fotis Evangelou
## pour partager leurs règles .htaccess avec le monde et d'inspirer la création
## de ce fichier. Un merci spécial à Jon Brown pour le partage de ses recherches
## et de m'aider à améliorer ce fichier.
##
## Remerciement aussi à John pour ses remarques et g1smd de prendre le temps
## d'optimiser la vitesse du fichier.
##
## Il est généralement prudent de supprimer les commentaires dans le fichier
## lorsque vous l'utilisez sur un hôte réel pour réduire le temps d'analyse.
##
## ---------------------------------------------------------------------------------------
## Voulez-vous personnaliser ce fichier .htaccess en quelques clics? "Admin Tools Professional"
## par AkeebaBackup.com fait cela, et bien plus encore.
##
## En savoir plus: http://www.akeebabackup.com/software/admin-tools.html
## ---------------------------------------------------------------------------------------
##
## Amusez-vous, rester en sécurité.
##
## Nicholas K. Dionysopoulos
## Lead Developer, AkeebaBackup.com
##
## Changelog:
## Version 3.3 (en attente de la publication)
## - Version 3.2 n'a pas été testé et tué certains sites
## Version 3.2 (8e Avril 2011)
## - Quelques légères améliorations ayant un impact négligeable sur les performances
## Version 3.1 (5e Avril 2011)
## - Temps d'expiration des ressources statiques ajusté à 1 mois au lieu de 1 an.
## - GET variables non répercuté dans le index.php à la redirection racine du site
## - Corrections des fautes
## - Alternative pour HTTP redirection HTTPS
## - Commune exploite protection : Des changements mineurs dans les commentaires , règle de base64_encode/base64_decode combinée
## - Bug dans la requête règle de protection de chaîne
## - Back-end et front-end d'optimisation de la protection
## - Fixe la règle UNION SELECT SQLi de travailler effectivement contre des attaques réelles
## - Commentaires Ajouté à Joomla ! section SEF noyau
## Version 3.0 (28e Mars 2011)
## - Réécriture massive
## Version 2.3 (18e Novembre , 2010)
## - Ajouté .ico aux règles de passage, pour les favicons à charger
## Version 2.2 (25e Octobre , 2010)
## - Bug dans le tmpl = règle de composant
## Version 2.1 (19e Octobre , 2010)
## - Index.php à la racine redirection tuerait des requêtes AJAX
## - Filtrage Referer a foiré
## - Simplifiée et le code PHP plus approfondie Easter Egg ( merci Jon ! )
## - Le template filtre tmpl tp n'était pas complète et tué certains composants
## - Optimisé Joomla ! section SEF noyau
## - Filtres Bot et l'optimisation GZip ne serai jamais lancer pour le contenu dynamique
## - Optimisation du contenu d'expiration s'est plus optimisée
## - Règle Ajouté ETag
##
############################################################################################
######### Début - RewriteEngine activé
RewriteEngine On
######### Fin - RewriteEngine activé
######### Début - RewriteBase
# Décommentez la ligne suivante si l'URL de votre serveur web
# N'est pas directement liée aux chemins de fichiers physiques.
# Mettre à jour votre Joomla! Dossier (juste / pour root)
# RewriteBase /
######### Fin - RewriteBase
######### Début - Pas de liste du répertoire
## Note: +FollowSymlinks peuvent causer des problèmes et vous pourriez avoir besoin de enlever
IndexIgnore *
Options +FollowSymLinks All -Indexes
######### Fin - Pas de listing du répertoire
######### Début - L'ordre d'exécution de fichiers, par Komra.de
DirectoryIndex index.php index.html
######### Fin - L'ordre d'exécution de fichiers
########## Début - ETag Optimisation
## Cette règle va créer un ETag pour les fichiers basés uniquement sur la modification
## d'horodatage et leur taille. Cela fonctionne à merveille si vous utilisez des serveurs rsync'ed,
## où le nombre d'inodes de fichiers identiques diffère.
## Remarque: Il peut causer des problèmes sur votre serveur et vous devrez peut-être retirer
FileETag MTime Size
########## Fin - ETag Optimisation
########## Début - Temps d'expiration par défaut optimal
## Remarque: cela pourrait causer des problèmes et vous pourriez avoir à le commenter
## en plaçant un # en face de cette section lignes
## Note: Certaines personnes préfèrent utiliser "maintenant, plus un mois"("now, plus 1 month")
## au lieu de "maintenant plus de 1 an"("now, plus 1 year").
## A votre goût.
<IfModule mod_expires.c>
# Activation du contrôle d'expiration
ExpiresActive On
# Expiration par défaut: 1 heure après la requête
ExpiresDefault "now plus 1 hour"
# Expiration CSS et JS : 1 semaine après la requête
ExpiresByType text/css "now plus 1 week"
ExpiresByType application/javascript "now plus 1 week"
ExpiresByType application/x-javascript "now plus 1 week"
# Expiration des fichiers d'image : 1 mois après la requête
ExpiresByType image/bmp "now plus 1 month"
ExpiresByType image/gif "now plus 1 month"
ExpiresByType image/jpeg "now plus 1 month"
ExpiresByType image/jp2 "now plus 1 month"
ExpiresByType image/pipeg "now plus 1 month"
ExpiresByType image/png "now plus 1 month"
ExpiresByType image/svg+xml "now plus 1 month"
ExpiresByType image/tiff "now plus 1 month"
ExpiresByType image/vnd.microsoft.icon "now plus 1 month"
ExpiresByType image/x-icon "now plus 1 month"
ExpiresByType image/ico "now plus 1 month"
ExpiresByType image/icon "now plus 1 month"
ExpiresByType text/ico "now plus 1 month"
ExpiresByType application/ico "now plus 1 month"
ExpiresByType image/vnd.wap.wbmp "now plus 1 month"
ExpiresByType application/vnd.wap.wbxml "now plus 1 month"
ExpiresByType application/smil "now plus 1 month"
# Expiration des fichiers audio : 1 mois après la requête
ExpiresByType audio/basic "now plus 1 month"
ExpiresByType audio/mid "now plus 1 month"
ExpiresByType audio/midi "now plus 1 month"
ExpiresByType audio/mpeg "now plus 1 month"
ExpiresByType audio/x-aiff "now plus 1 month"
ExpiresByType audio/x-mpegurl "now plus 1 month"
ExpiresByType audio/x-pn-realaudio "now plus 1 month"
ExpiresByType audio/x-wav "now plus 1 month"
# Expiration des fichiers vidéo : 1 mois après la requête
ExpiresByType application/x-shockwave-flash "now plus 1 month"
ExpiresByType x-world/x-vrml "now plus 1 month"
ExpiresByType video/x-msvideo "now plus 1 month"
ExpiresByType video/mpeg "now plus 1 month"
ExpiresByType video/mp4 "now plus 1 month"
ExpiresByType video/quicktime "now plus 1 month"
ExpiresByType video/x-la-asf "now plus 1 month"
ExpiresByType video/x-ms-asf "now plus 1 month"
</IfModule>
########## Fin - Temps d'expiration optimal
########## Début - Bloqueur d'outils de piratage commune et limitateur de la bande passante
## Par SigSiu.net et @nikosdion.
# Cette ligne désactive également Akeeba Remote Control 2.5 et versions antérieures
SetEnvIf user-agent "Indy Library" stayout=1
# ATTENTION: La désactivation wget bloque également
# la méthode la plus courante pour l'exécution de tâches cron.
# Retirez si vous avez des problèmes avec Cron jobs.
SetEnvIf user-agent "Wget" stayout=1
# Les règles suivantes sont pour la bande passante monopolisant le téléchargement d'outil
SetEnvIf user-agent "libwww-perl" stayout=1
SetEnvIf user-agent "Download Demon" stayout=1
SetEnvIf user-agent "GetRight" stayout=1
SetEnvIf user-agent "GetWeb!" stayout=1
SetEnvIf user-agent "Go!Zilla" stayout=1
SetEnvIf user-agent "Go-Ahead-Got-It" stayout=1
SetEnvIf user-agent "GrabNet" stayout=1
SetEnvIf user-agent "TurnitinBot" stayout=1
# Cette ligne refuse l'accès à tous les outils ci-dessus
deny from env=stayout
########## Fin - Bloqueur d'outils de piratage commune et limitateur de la bande passante
########## Début - compression automatique des ressources
# Compresse le texte, html, javascript, css, xml, kudos vers Komra.de
# Peut tuer l'accès à votre site pour les anciennes versions d'Internet Explorer
# Le serveur doit être compilé avec mod_deflate sinon il enverra HTTP 500 erreur.
# Mod_deflate n'est pas disponible sur Apache série 1.x. Ne peut être utilisé qu'avec Apache 2.x serveur.
# AddOutputFilterByType est maintenant obsolète par Apache. Utilisez mod_filter à l'avenir.
AddOutputFilterByType DEFLATE text/plain text/html text/xml text/css application/xml application/xhtml+xml application/rss+xml application/javascript application/x-javascript
########## Fin - Compression automatique des ressources
########## Début - Redirection de Google Apps, par Komra.de
## Décommentez la ligne suivante pour l'activer :
# RewriteRule ^mail http://mail.google.com/a/example.com [R=301,L]
## Si ce qui précède ne fonctionne pas sur votre serveur, essayez ceci:
# RewriteRule ^mail http://mail.google.com/a/example.com [R,L]
########## Fin - Redirection de Google Apps
########## Début - Redirection index.php vers /
## Note: Modifier example.com pour reflecter votre domaine
RewriteCond %{THE_REQUEST} !^POST
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteCond %{SERVER_PORT}>s ^(443>(s)|[0-9]+>s)$
RewriteRule ^index\.php$ http%2://www.example.com/$1 [R=301,L]
# Si ce qui précède ne fonctionne pas sur votre serveur, essayez plutôt ceci:
# RewriteRule ^index\.php$ http%2://www.example.com/$1 [R,L]
########## Fin - Redirection index.php vers /
########## Début - Redirection non-www vers www
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
## Si ce qui précède lève une erreur HTTP 500, échange [R = 301, L] avec [R, L]
########## Fin - Redirection non-www vers www
########## Début - Redirection www vers non-www
## Attention : Commentez la règle non-www vers www si vous choisissez d'utiliser cela
# RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
# RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
## Si ce qui précède lève une erreur HTTP 500, échange [R = 301, L] avec [R, L]
########## Fin - Redirection www vers non-www
########## Début - Redirection (www.)anciendomain.com vers www.example.com
## Note : anciendomain.com est votre ancien domaine, vous souhaitez rediriger vers example.com,
## Alors que www.example.com est le nouveau nom de domaine que vous souhaitez rediriger depuis anciendomain.com.
## Changer ces noms en fonction de votre configuration actuelle. Rappelez-vous,
## Cet partie du fichier est censée être placé dans www.olddomain.com!
## Note: Remplacer [R = 301, L] avec [R, L] si vous obtenez l'erreur 500.
## Décommentez la ligne suivante pour l'activer :
# RewriteCond %{HTTP_HOST} ^(www\.)?olddomain\.com [NC]
# RewriteRule (.*) http://www.example.com/$1 [R=301,L]
########## Fin - Redirection olddomain.com vers www.example.com
########## Début - Force HTTPS dans certaines pages
# Force la page foobar.html à s'ouvrir en https, peu importe ce que dit Joomla!
# Ceci est un exemple de redirection pour foobar.html. Ne noter que vous devez changer
## www.example.com pour refléter votre propre nom de domaine. N'oubliez pas d'échapper l'utilisation des points
# \. dans le côté gauche de chaque règle. Vous avez besoin de DEUX LIGNES PAR URL de la règle pour travailler.
RewriteCond %{SERVER_PORT} !^443$
## Sinon, commenter la ligne ci-dessus et décommentez la ligne suivante:
# RewriteCond %{HTTPS} ^off$ [NC]
RewriteRule ^foobar\.html$ https://www.example.com/foobar.html [R=301,L]
## NOTE: Si vous avez un HTTP 500 error, échanger [R=301,L] avec [R,L]
# Ajouter plus de règles ci-dessous de cette ligne
########## Fin - Force HTTPS dans certaines pages
########## Début - Réécrire les règles pour bloquer certains exploits
## Si vous rencontrez des problèmes sur votre site bloquer les opérations énumérées ci-dessous
## Cette tentative de bloquer le type le plus commun de `tentatives` d'exploitation à Joomla!
#
# Si la requête demande une chaine qui contient / proc / self / environ (par SigSiu.net)
RewriteCond %{QUERY_STRING} proc/self/environ [OR]
# Injection variables hérités
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
# Bloquer n'importe quel script essayant d'aller sur base64_encode/base64_decode envoyer via l'URL
RewriteCond %{QUERY_STRING} base64_(en|de)code\(.*\) [OR]
## IMPORTANT : Si la ligne ci-dessus renvoie une erreur HTTP 500, remplacer par ces deux lignes:
# RewriteCond %{QUERY_STRING} base64_encode\(.*\) [OR]
# RewriteCond %{QUERY_STRING} base64_decode\(.*\) [OR]
# Bloquer tout script qui inclut une balise <script> dans l'URL
RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]
# Bloquer tout script qui essaye de définir une variable PHP GLOBALS via l'URL
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Bloquer tout script qui essaye de modifier une variable _REQUEST via l'URL
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Retourne un 403 accès interdit et affiche le contenu de la page d'accueil de racine
RewriteRule .* index.php [F]
#
########## Fin - Réécrire les règles pour bloquer certains exploits
########## Début - Protection d'injection de fichier, par SigSiu.net
RewriteCond %{REQUEST_METHOD} GET
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=http:// [OR]
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(\.\.//?)+ [OR]
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=/([a-z0-9_.]//?)+ [NC]
RewriteRule .* - [F]
########## Fin - Protection d'injection de fichier
########## Début - Règles exceptions avancées de la protection du serveur
##
## Ce sont des échantillons d'exceptions à la protection avancée du serveur 3.0
## Règle énoncée plus bas de ce fichier.
##
## Autoriser UddeIM CAPTCHA
RewriteRule ^components/com_uddeim/captcha15\.php$ - [L]
## Autoriser Phil Taylor's Turbo Gears
RewriteRule ^plugins/system/GoogleGears/gears-manifest\.php$ - [L]
## Autoriser JoomlaWorks AllVideos
RewriteRule ^plugins/content/jw_allvideos/includes/jw_allvideos_scripts\.php$ - [L]
## Autoriser Admin Tools Joomla! Mettre à jour pour le faire fonctionner
RewriteRule ^administrator/components/com_admintools/restore\.php$ - [L]
## Autoriser Akeeba Backup Professional's, integrer le script de restoration pour qu'il fonctionne
RewriteRule ^administrator/components/com_akeeba/restore\.php$ - [L]
## Autoriser Akeeba Kickstart
RewriteRule ^kickstart\.php$ - [L]
# Ajouter ici plus de règles pour les fichiers simples PHP
## Autoriser les pièces jointes Agora, mais pas les fichiers PHP dans ce répertoire!
RewriteCond %{REQUEST_FILENAME} !(\.php)$
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^components/com_agora/img/members/ - [L]
# Ajouter plus de règles pour permettre un accès complet (à l'exception des fichiers PHP) sur plusieurs répertoires ici
#RewriteRule ^cache/ - [L]
## Uncomment to allow full access to the tmp directory (pas fortement recommandé!)
#RewriteRule ^tmp/ - [L]
# Ajouter ici plus de règles d'accès complet
########## Fin - Règles exceptions avancées de la protection du serveur
########## Début - Protection avancée du serveur
# Protection avancée du serveur, version 2.0 - August 2010
# by Nicholas K. Dionysopoulos
# traduction par Gary
## Filtrage de la Référence pour les fichiers multimédias communs.
## Remplacez par votre propre nom de domaine.
## Note: Changer www\.example\.com avec votre nom de domaine, substituer les
## points avec \., i.e.: www\.example\.com en www.example.com
RewriteRule ^images/stories/.*\.(jp(e?g|2)?|png|gif|bmp|css|js|swf|ico)$ - [L]
RewriteCond %{HTTP_REFERER} .
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?example\.com [NC]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule \.(jp(e?g|2)?|png|gif|bmp|css|js|swf|ico)$ - [F]
## Interdire l'empreinte visuelle de Joomla!
## Idée initiale par Brian Teeman et Ken Crowder, voir:
## http://www.slideshare.net/brianteeman/hidden-joomla-secrets
## Améliorer par @nikosdion
RewriteCond %{QUERY_STRING} (^|&)tmpl=(component|system) [NC]
RewriteRule .* - [L]
RewriteCond %{QUERY_STRING} (^|&)t(p|emplate|mpl)= [NC]
RewriteRule .* - [F]
## Interdire les fonctions caché en PHP
## Voir : http://www.0php.com/php_easter_egg.php
## http://osvdb.org/12184 pour plus d'information
RewriteCond %{QUERY_STRING} \=PHP[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12} [NC]
RewriteRule .* - [F]
## Protection en arrière plan
## Cela bloque également les attaques empreintes parcourant XML et des fichiers INI
RewriteRule ^administrator/?$ - [L]
RewriteRule ^administrator/index\.(php|html?)$ - [L]
RewriteRule ^administrator/index[23]\.php$ - [L]
RewriteRule ^administrator/(components|modules|templates|images|plugins)/.*\.(jp(e?g|2)?|png|gif|bmp|css|js|swf|html?|mp(eg?|[34])|avi|wav|og[gv]|xlsx?|docx?|pptx?|zip|rar|pdf|xps|txt|7z|svg|od[tsp]|flv|mov)$ - [L]
RewriteRule ^administrator/ - [F]
## Autoriser explicitement l'accès uniquement à la XML-RPC (xmlrpc/index.php) ou au répertoire xmlrpc/
RewriteRule ^xmlrpc/(index\.php)?$ - [L]
RewriteRule ^xmlrpc/ - [F]
## Interdire l'accès premier plan pour certains répertoires système de Joomla!
RewriteRule ^includes/js/ - [L]
RewriteRule ^(cache|includes|language|libraries|logs|tmp)/ - [F]
## Autoriser un accès limité pour certains répertoires système avec un contenu accessible par les clients de Joomla!
RewriteRule ^(components|modules|plugins|templates)/.*\.(jp(e?g|2)?|png|gif|bmp|css|js|swf|html?|mp(eg?|[34])|avi|wav|og[gv]|xlsx?|docx?|pptx?|zip|rar|pdf|xps|txt|7z|svg|od[tsp]|flv|mov)$ - [L]
## Décommentez cette ligne si vous avez des extensions qui nécessitent un accès direct à leur propre
## Fichiers index.php personnalisé. Notez que ce n'est pas sécuritaire et le développeur devrait avoir honte
## Pour être si boiteux, paresseux.
# RewriteRule ^(components|modules|plugins|templates)/.*(index\.php)?$ - [L]
## Décommentez la ligne suivante si votre template nécessite un accès direct aux fichiers PHP
## à l'intérieur de son répertoire, par exemple des copies compressées GZip de ses fichiers CSS
# RewriteRule ^templates/.*\.php$ - [L]
##Interdire l'accès aux fichiers malveillants en PHP dans tout le site, sauf si elles sont explicitement autorisés
RewriteCond %{REQUEST_FILENAME} (\.php)$
RewriteCond %{REQUEST_FILENAME} !(/index[23]?\.php)$
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule (.*\.php)$ - [F]
Interdire l'accès aux htaccess.txt et configuration.php-dist
RewriteRule ^(htaccess\.txt|configuration\.php-dist|php\.ini)$ - [F]
## SQLi première ligne de défense, grâce à Radek Suski (SigSiu.net) @
## http://www.sigsiu.net/presentations/fortifying_your_joomla_website.html
## Peut causer des problèmes sur les demandes légitimes
RewriteCond %{QUERY_STRING} concat.*\( [NC,OR]
RewriteCond %{QUERY_STRING} union.*select.*\( [NC,OR]
RewriteCond %{QUERY_STRING} union.*all.*select.* [NC]
RewriteRule .* - [F]
########## Fin - Protection avancée du serveur
########## Début - Filtre antispam de base, par SigSiu.net
## J'ai enlevé quelques mots communs, modifier à votre goût
## Ce code utilise PCRE et ne fonctionne qu'avec Apache 2.x.
## Ce code ne fonctionnera pas avec les serveurs Apache 1.x.
RewriteCond %{QUERY_STRING} \b(ambien|blue\spill|cialis|cocaine|ejaculation|erectile)\b [NC,OR]
RewriteCond %{QUERY_STRING} \b(erections|hoodia|huronriveracres|impotence|levitra|libido)\b [NC,OR]
RewriteCond %{QUERY_STRING} \b(lipitor|phentermin|pro[sz]ac|sandyauer|tramadol|troyhamby)\b [NC,OR]
## Remarque: Le RewriteCond finale ne doit pas utiliser la notion [OR].
RewriteCond %{QUERY_STRING} \b(ultram|unicauca|valium|viagra|vicodin|xanax|ypxaieo)\b [NC]
RewriteRule .* - [F]
## Remarque: Les lignes précédentes est une version "compressée"
## des filtres. Vous pouvez ajouter vos propres filtres comme:
## RewriteCond %{QUERY_STRING} \bbadword\b [NC,OR]
## où "badword" est le mot que vous voulez exclure
########## Fin - Filtre antispam de base
########## Début - Section SEF du Noyau Joomla!
#
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
## Si le chemin et le fichier demandé n'est pas / index.php et la demande
## n'a pas déjà été réécrit en interne au script index.php
RewriteCond %{REQUEST_URI} !^/index\.php
## et la demande est pour la racine du site, ou pour une URL sans extension,
## ou l'URL demandée se termine avec l'une des extensions énumérés
RewriteCond %{REQUEST_URI} /component/|(/[^.]*|\.(php|html?|feed|pdf|raw|ini|zip|json|file|vcf))$ [NC]
## et le chemin et le fichier demandé ne correspond pas directement un fichier physique
RewriteCond %{REQUEST_FILENAME} !-f
## et le chemin d'accès demandé ne correspond pas à un dossier physique
RewriteCond %{REQUEST_FILENAME} !-d
## intérieurement réécrire la requete au script index.php
RewriteRule .* index.php [L]
#
########## Fin - Section SEF du Noyau Joomla!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment