2011-06-19 3 views
0

J'ai utilisé ce code dans mon .htaccess de réécrire mes urls qui est comme ceci:Réécriture URL à l'aide .htaccess et mod_rewrite

www.example.com/subcategory.php?subcat=my-test
à
www.example.com/my-test

code .htaccess je:

RewriteEngine on
RewriteCond $1 !^(subcategory\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ subcategory.php?subcat=$1 [L,QSA]

Mon problème est quand j'accéder à l'URL ne se rapportant pas à mon dossier subcategory.php comme contactus et aboutus, le fichier .htaccess sera en quelque sorte me mettre à subcategory.php fichier ce qui n'est pas ce que je veux. Je veux que mon contact soit géré par contactus.php et aboutus avec aboutus.php.

Je sais qu'il y a quelque chose qui ne va pas avec mon fichier .htaccess mais je n'ai pas pu le réparer moi-même car je ne suis pas très familier avec le codage .htaccess.

Toute suggestion serait grandement appréciée.

Merci beaucoup!

Répondre

2

Vous êtes en train de réécrire toutes les demandes à subcategory.php. Il n'y a aucun moyen pour .htaccess de dire si /xxx est une sous-catégorie ou une page différente, donc vous pouvez le rediriger vers un script différent. Utilisez cet extrait de code à la place du vôtre et déplacez toute la logique de «routage» vers PHP. En PHP, vous pouvez savoir si/xxx est une sous-catégorie, une page de contact, un article ou autre chose et utiliser un script adapté à ce type d'enregistrement de base de données.

Vous trouverez l'URL demandée dans $_SERVER['REQUEST_URI'].