2009-05-27 3 views
2

Je suis conscient de tous les moyens canoniques d'obtenir des URL propres (www.monsite.com/getarticle?a=123 vs www.mysite.com/getarticle/123).URL propres PHP sans accès aux configurations d'apache

Ces solutions incluent mod_rewrite, force_type et diverses configurations d'apache, principalement.

Puisque je n'ai pas accès à une telle configuration sur mon hébergement partagé, y a-t-il une solution/bidouille pour contourner la limitation et faire le travail? Merci.

Répondre

3

Oui.

Si vous appelez le script via un, www.example.com/index.php/my/path/here, vous pouvez obtenir le chemin de la requête assez facilement à partir de $_SERVER. J'utilise personnellement $_SERVER['PHP_SELF'] mais il y en a plusieurs à choisir en fonction de la version de PHP que vous utilisez.

2

Juste pour être certain - êtes-vous sûr que vous ne pouvez pas utiliser mod_rewrite?

S'il est installé/activé sur le serveur d'hébergement partagé, vous pouvez simplement placer un fichier .htaccess dans votre répertoire public_html avec vos règles de réécriture. Pas besoin de changer la configuration apache réelle.

0

Vous ne pouvez pas utiliser d'autres URL que celles dépendantes du système si le système ne peut pas les gérer correctement. Et le comportement natif des serveurs Web est de mapper le chemin d'URL demandé un-sur-un sur le système de fichiers.

Mais la plupart des serveurs Web offrent certaines fonctionnalités pour permettre de telles choses, de mapper le chemin d'URL demandé avec l'aide de règles particulières sur le système de fichiers.

Apache par exemple, a AcceptPathInfo pour ajouter des segments de chemin supplémentaires après un chemin d'URL qui fait référence à un fichier existant déjà tout en conservant cette information (voir PATH_INFO variables envirnoment) et mod_rewrite pour encore plus de fonctionnalités.

+0

Apparemment, AcceptPathInfo est désactivé par défaut pour les requêtes apache normales, mais activé par défaut pour mod_php et la plupart des gestionnaires CGI. –