2010-04-27 3 views
0

Je suis nouveau sur un site php, seulement familier avec les sites de formulaires web .net.site Web php url correspondant à la question

Je n'arrive pas à comprendre comment le routage fonctionne sur ce site php.

www.oursite.com/suggestions.php est suggestions.php
www.oursite.com/suggestions charge également l'amende php
www.oursite.com/suggestions/ charge le php, mais pas css est appliqué
www.oursite.com/suggestions/anything - tout ce qui vient après le '/' est ignoré et les suggestions sont chargées sans css. donc oursite.com/suggestions////// fonctionne, tout comme oursite.com/suggestions/2/2/2/2/whatever

J'ai cherché mais je n'ai trouvé aucune bonne explication sur comment cela fonctionne. quelqu'un peut-il expliquer ou fournir une bonne ressource?

merci.

Répondre

2

Ceci est très certainement fait en utilisant Mod_Rewrite, une extension Apache. Vous trouverez probablement un fichier appelé .htaccess dans la racine publique, dans lequel ces règles de réécriture sont définies.

1

DouweM a la bonne réponse en ce qui concerne les URLs amicaux.

Quant au CSS, il est probablement parce que vous utilisez des URL relatives dans vos balises de lien:

<link rel="stylesheet" href="site.css"/> 

Modifier ceux des URL absolues et il faut résoudre ce problème:

<link rel="stylesheet" href="/site.css"/> 

Le Cela s'explique par le fait que le navigateur fait la demande pour le CSS en fonction du répertoire dans lequel il se trouve, même si votre réécriture d'URL change cela. Donc, si l'url est http://mysite.com/suggestions/ et que vous utilisez des URLs relatives, le navigateur demandera le css comme http://mysite.com/suggestions/site.css qui bien sûr n'existe pas.

0
www.oursite.com/suggestions.php is to suggestions.php 
www.oursite.com/suggestions also loads the php fine 

Vous avez probablement un fichier .htaccess qui vérifie d'abord qu'il existe ou non un fichier de ce nom, et si elle ne sert, alors, si elle ne le fait pas, essaie de l'acheminer vers un script php.

www.oursite.com/suggestions/ loads the php, but no css is applied 

Le / signifie que votre navigateur considère '/suggestions/' un répertoire. Si suggestions.php sort un code HTML contenant un <link> relatif à une feuille de style, par ex. <link href="style.css">, votre navigateur demandera www.oursite.com/suggestions/style.css, plutôt que www.oursite.com/style.css comme dans les deux cas précédents.

www.oursite.com/suggestions/anything 

Identique au cas précédent, votre navigateur demandera le fichier css mal, car il considère « /suggestions/ » un répertoire. (Pour une solution potentielle, jetez un oeil à la réponse de Eric Petroelje.)

Comme DouweM dit, cependant, votre meilleur pari est de regarder directement à votre fichier .htaccess et comprendre ce qu'il fait.

Questions connexes