php веб-сайт, соответствующий вопрос - PullRequest
0 голосов
/ 27 апреля 2010

Я новичок на сайте php, знаком только с сайтами веб-форм .net.

Я не могу понять, как работает маршрутизация на этом php-сайте.

www.oursite.com / ideas.php - это предложения. Php
www.oursite.com/suggestions также загружает php штраф
www.oursite.com/suggestions/ загружает php, но css не применяется
www.oursite.com/suggestions/anything - все, что идет после «/», игнорируется, а предложения загружаются без css. так работает oursite.com/suggestions//////, как и oursite.com/suggestions/2/2/2/2/whwhat

Я искал, но не нашел хорошего объяснения того, как это работает. Может кто-нибудь объяснить или предоставить хороший ресурс?

спасибо.

Ответы [ 3 ]

2 голосов
/ 27 апреля 2010

Это, безусловно, делается с помощью Mod_Rewrite, расширения Apache. Вероятно, вы найдете файл с именем .htaccess в общем корне, в котором определены эти правила перезаписи.

1 голос
/ 27 апреля 2010

У DouweM правильный ответ в отношении дружественных URL.

Что касается CSS, вероятно, это потому, что вы используете относительные URL в тегах ссылок:

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

Измените их на абсолютные URL, и это должно решить эту проблему:

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

Причина этого заключается в том, что браузер делает запрос на CSS на основе каталога, в котором, как он считает, находится, даже если перезапись URL-адреса меняет это. Таким образом, если URL-адрес http://mysite.com/suggestions/ и вы используете относительные URL-адреса, браузер запросит CSS как http://mysite.com/suggestions/site.css, который, конечно, не существует.

0 голосов
/ 27 апреля 2010
www.oursite.com/suggestions.php is to suggestions.php
www.oursite.com/suggestions also loads the php fine

Возможно, у вас есть файл .htaccess, который сначала проверяет, существует ли файл с таким именем, и если он его обслуживает, то, если он этого не делает, пытаетсянаправьте его к php-скрипту.

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

* / означает, что ваш браузер считает '/suggestions/' каталогом.Если suggestions.php выводит HTML, который содержит относительную <link> к таблице стилей, например, <link href="style.css">, ваш браузер будет запрашивать www.oursite.com/suggestions/style.css, а не www.oursite.com/style.css, как в предыдущих двух случаях.

www.oursite.com/suggestions/anything

Как и в предыдущем случае, ваш браузер запросит неправильный файл css, так как он считает '/suggestions/' каталогом.(Для возможного исправления взгляните на ответ Eric Petroelje .)

Как сказал DouweM , лучше всего смотреть прямо на.htaccess файл и выяснить, что он делает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...