Как сделать так, чтобы URL на сайте отображались исключительно в виде папок - PullRequest
1 голос
/ 18 июля 2011

Я пытаюсь создать структуру папок для проекта веб-сайта, над которым я работаю. Многие сайты в наши дни имеют следующую структуру ссылок:

www.example.com / Новости / Новости-пункт-один / www.example.com/about-us/

Могу ли я заставить свой сайт работать так, не создавая новую папку для каждой имеющейся у меня страницы и не помещая в нее файл index.php?

То есть www.example.com/news/new-item-one.php читает www.example.com/news/news-item-one/

Ответы [ 5 ]

2 голосов
/ 18 июля 2011

Вы можете использовать инфраструктуру веб-приложений, такую ​​как CodeIgniter или CakePHP, чтобы сделать для вас URI-маршрутизацию:

Это делается с помощью файла .htaccess, который любая из этих платформ может предоставить в примерах документов, и у них есть обширная документация о маршрутизации URI. Например на CI:

http://codeigniter.com/user_guide/general/urls.html

1 голос
/ 18 июля 2011

Да, но это зависит от того, какой сервер вы используете.

Если Apache, один из самых распространенных способов - это создать файл .htaccess и использовать правила перезаписи для объявления различных маршрутов, которые использует ваш сайт.

Ниже приведен очень простой пример, хотя не обязательно лучший способ.Есть вещи, которые вы можете сделать, чтобы сделать его более гибким, но я считаю, что это выходит за рамки этого вопроса.Что бы это ни стоило, я предпочитаю универсальный маршрут, который передает обработку маршрута моей структуре.

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^news/(.*)$ news.php?item=$1 [NC,L,QSA]
    RewriteRule ^about-us/$ about-us.php [NC,L,QSA]
</IfModule>
0 голосов
/ 18 июля 2011

Следующий код mod_rewrite (для вставки в конфигурацию Apache) позволит вам скрыть расширение .php любой страницы вашего сайта.

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{REQUEST_URI} !\.php$
RewriteRule ^(.*)$ $1.php [L]

Он проверяет, что что-то не так 't сам файл или каталог, то добавление .php после его имени на самом деле является файлом, и вместо этого он служит.

Так что если у вас есть /page.php на вашем сайте, переход на / pageбыть так же, как перейти к /page.php.

0 голосов
/ 18 июля 2011

Вам не нужно использовать фреймворк (хотя это может быть хорошей идеей). Вы можете просто правильно настроить ваш .htacess:

http://www.evolt.org/Making_clean_URLs_with_Apache_and_PHP

0 голосов
/ 18 июля 2011

Вы хотите использовать htaccess.

Создайте файл в корневом каталоге с именем .htaccess со следующим

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(.*)$ $1.php [NC]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...