2009-02-16 4 views
2

je suis l'hébergement d'un site Web par l'intermédiaire d'une société d'hébergement [1] sur un serveur linux/apache. Jusqu'à présent, je sers le contenu différent à travers un script avec des paramètres. un exemple d'URL estservir avec apache tous les chemins sous un domaine par un seul script

www.mydomain.com/pages.php?date=1-10-2008 

maintenant je veux changer le système, l'URL se compose de quelque chose qui ressemble tout à fait comme une url de chemin. par exemple .:

www.mydomain.com/pages/date/2008/20/1 

pour ce que je dois Eteignez le normal mapping des chemins d'URL vers des dossiers de répertoire dans apache: toutes les demandes de tous les chemins doivent aller à un scénario central (pages.php), qui que analyse le composant path de l'URL.

comment puis-je tweak apache pour cela? J'espère que certaines règles .htaccess pourraient faire l'affaire.

[1] BTW, la société d'hébergement est godaddy.com.

Répondre

3

Quelque chose comme:

RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} ! -f 
RewriteCond %{REQUEST_FILENAME} ! -d 
RewriteRule . pages.php 

devrait réécrire chaque requête pour un fichier ou un répertoire qui n'existe pas pages.php. Cela vous permettra de conserver les fichiers statiques (images, feuilles de style, etc.) dans la même racine de document.

(Shamelessly volé de WordPress :))

+0

je devrais lire les documents avant de vérifier la boîte de communauté wiki :( – mwalling

0

Plutôt que d'analyser l'URL dans votre script, vous devriez être en mesure de gérer l'exemple spécifique ci-dessus avec le module ModRewrite d'Apache.

http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html

Vous pouvez utiliser dans le fichier .htaccess, en supposant que votre hôte le permet.

1

Vous cherchez mod_rewrite. Exemple htaccess:

RewriteEngine On 
RewriteBase/
RewriteRule ^pages/([^/]*)/(.*)$ pages.php?$1=$2 
Questions connexes