2014-05-09 4 views
0

Je construis curently un site Web et je veux être en mesure de réécrire urls comme celui-ciUrl rewriting PHP APACHE

si je foo.com/registration.php je veux foo.com/registration.

Même si j'ai une zone membre avec foo.com/member.php je veux quelque chose comme foo.com/member/"membername"/ (le nom du membre est stocké dans une session, ou je peux faire un cookie).

J'ai déjà vu module rewrite apache, mais je ne comprends pas vraiment, ou du moins pas assez pour l'appliquer sur mon site

+0

http://www.addedbytes.com/articles/for-beginners/url- réécrire-pour-débutants/Commencez votre quête pour réécrire des URL ici. – Dorvalla

+1

Notez que '/ registration' est l'URI au format SEO produit par des liens de page sur votre site, ou tapé par un visiteur. Vous utiliserez .htaccess pour _rewrite_ à '/ registration.php' (voir les autres réponses pour plus de détails), qui est la forme que votre serveur et vos scripts peuvent réellement utiliser. –

Répondre

0

Vous devez utiliser .htaccess pour convertir votre « url http convivial "à votre demande.

Par exemple: Lorsque votre URL sera: http://www.domain.com/this/link.html

Votre htaccess sera:

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

RewriteRule ^(.*).html$ index.php?filepath=$1&%{QUERY_STRING} [L,QSA] 

Dans votre index.php vous pouvez obtenir cette demande filepath par ceci:

$a_request_filepath = (empty($_GET['filepath'])) ? 'index' : $_GET['filepath']; 

Votre variable aura la valeur: this/link

Pour une explication succincte: Vous allez rechercher le chemin demandé. Vous supprimez .html du chemin de fichier et envoyez le reste du chemin à index.php avec un paramètre du chemin. Donc index.php? Filepath = ce/lien est la même page

0

Si vous utilisez Apache 2.2.16 ou version ultérieure, mod_dir offre des fonctionnalités similaires à celles du module Rewrite sur une ligne. Il peut être un peu plus performant puisqu'il n'invoque pas les vérifications pour voir si la ressource demandée est un fichier ou un répertoire.

FallbackResource /index.php