2017-10-02 2 views
1

Ce code fonctionne très bien:Est-ce si les déclarations possibles htaccess

RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 

RewriteCond %{REQUEST_FILENAME} !-d 

RewriteRule ^([a-zA-Z0-9-]+)/?$ index.php?seo_name=$1 

Mais, je veux ajouter, si des déclarations comme celle-ci, est-ce possible et comment?

if seo_name = cccc, go to page cccc.php 

if seo_name = dddd, go to page dddd.php 

et ainsi de suite et ainsi de suite.

Merci.

Ron

+2

Et vous écrirez 100 'if's? Peut-être que vous avez juste besoin d'une réécriture '$ 1.php'? –

+0

Alors est-ce _Ron_ ou _Robbie_? – AbraCadaver

+0

Pourquoi n'incluez-vous pas le bon fichier dans 'index.php' basé sur la variable? Ou mieux encore, utilisez une base de données pour le contenu. Vous sauve des tonnes de pages et la peine d'éditer '.htaccess' chaque fois que vous ajoutez une nouvelle page ... – jeroen

Répondre

1

Vous pouvez utiliser RewriteRule et profiter des regexes directement. Je pense qu'ils sont suffisants pour discriminer vos pages.

RewriteRule ^(.*?)$ $1.php 

Ou si vous avez juste besoin de pages spécifiques à remplacer, vous pouvez le faire comme ceci:

RewriteRule ^mypage$ mypage.php 

Notez que vous pouvez même utiliser pour passer des chaînes de requête à PHP pour discrimine directement dans le code source , puis un php si avec include() s peut faire l'affaire:

RewriteRule ^page([0-9]+)$ page.php?id=$1 

Notez que ces remplacements d'URL ne sont pas redirections et ils ne sont pas « vu » par le navigateur, de sorte que tout r Le fichier elatif requis par le html sera extrait du chemin du dossier virtuel.

EDIT: ma suggestion pour vous est de faire htaccess pour pointer vers un fichier php (appelons-le hub.php):

RewriteRule ^cccc$ hub.php?id=cccc 
RewriteRule ^dddd$ hub.php?id=dddd 

maintenant php fera l'affaire, en hub.php:

if ($_GET['id'] == 'cccc') { 
    include('cccc.php'); 
} 

if ($_GET['id'] == 'dddd') { 
    include('dddd.php'); 
} 

Je pense qu'il y a faaaaar de meilleures façons de le faire, mais si vous préférez de cette façon ... Et cela va le faire fonctionner sans changer le code dans cccc.php et dddd.php

Il suffit de passer les "grands" travaux à php, ne faites pas de gros fichiers .htaccess (les modifications .htaccess nécessitent qu'Apache soit rechargé, pas les fichiers php).

+0

le contenu est de contenu db, j'en ai besoin pour les pages avec des formes en elle. – Ron

+0

Alors, quel est le problème? Voulez-vous quelque chose comme/user/x redirige vers une page qui demande à la base de données un contenu x? – NoImaginationGuy

+0

seo_name est la variable url et le nom de l'URL, comme ceci: www.xxxx.com/seo_name sans extension. – Ron