2010-12-12 9 views
1

J'essaie de trouver une solution pour passer toutes les requêtes HTTP pertinentes à mon fichier bootstrap index.php.Regex dans RewriteRule, passage au fichier bootstrap PHP

Les deux règles que je veux faire respecter sont les suivantes:

  • Tout répertoire,
  • Tout fichier avec une extension de fichier .html ou .ajax (dans un répertoire).

Aucun de ces fichiers ou répertoires n'existe réellement - le fichier bootstrap PHP affichera dynamiquement du contenu pertinent.


Voici mon fichier .htaccess actuel

RewriteEngine on 
Options +FollowSymLinks 
#RewriteCond %{REQUEST_URI}$1 !-f 
RewriteRule ^/?(.+(?:\.html?)?)$ index.php [L] 
RewriteRule \.ajax$ index.php [L] 

Le RewriteCond a été commenté comme il ne semble pas avoir d'effet, et avec la RewriteRule correcte, il sera obsolète de toute façon (les fichiers image, les fichiers javascript, etc. ne seront pas assortis de la règle, il n'est donc pas nécessaire de vérifier leur existence).

Je pense qu'un expert en regex pourrait facilement résoudre ce problème, un plus serait aussi de combiner les deux règles en une regex.

Merci!

Répondre

2

Cette règle devrait le faire:

RewriteRule .+\.(html|ajax)$ index.php 
+0

Merci, qui fonctionne pour '' home.html' et principal/page.html' mais ne tient pas compte des répertoires 'dire main' et' main/admin'. – Greg

+0

@Greg: Eh bien, ce chemin d'URL n'a pas d'extension de nom de fichier. – Gumbo

+0

Je voulais que RewriteRule corresponde aussi aux répertoires, est-ce possible? – Greg