Это двойной вопрос: правильный ответ будет идти «Как вы это делаете в PHP», объясняя, есть ли какие-либо преимущества, и считается, если это возможно.
Мне просто интересно, потому что я действительно не знаю, и я много вижу в веб-страницах.
Изменить: я не знаю технического имени, но, например, здесь, в Stackoverflow: « http://stackoverflow.com/posts/edit/522452
» – это то, что я называю «папками» (термин, ранее использованный в заголовке вопрос).
Если вы ссылаетесь на URL-адреса /posts/edit/522452
в отличие от URL-адресов /posts.asp?action=edit&postid=522452
(или что бы это ни переводилось на конец), это обычно делается с помощью URL-адреса переписывающий, например mod_rewrite
. Правило для этого URL-адреса может выглядеть так:
RewriteRule ^/posts/(\w+)/(\d+) /posts.asp?action=\1&postid=\2
Двумя основными преимуществами такого типа URL являются следующие:
В PHP вы можете получить доступ к этим опциям через $_GET['action']
и $_GET['postid']
, точно так же, как если бы браузер попросил переписанную форму.
Чтобы использовать такие URL-адреса, вам необходимо выполнить три шага:
Сообщите веб-серверу, что эти запросы должны быть перенаправлены на ваш PHP-скрипт. С помощью Apache вы можете использовать модуль mod_rewrite для этого:
RewriteEngine on RewriteCond% {REQUEST_FILENAME}! -f RewriteRule! ^ Index \ .php $ index.php [L]
Эти директивы перенаправляют каждый запрос, который не соответствует файлу в файловой системе, index.php
.
Получите ваш скрипт для анализа этих URL-адресов:
$ _SERVER ['REQUEST_URI_PATH'] = preg_replace ('/\?.*/', '', $ _SERVER ['REQUEST_URI']); $ segment = explode ('/', trim ($ _ SERVER ['REQUEST_URI_PATH'], '/')); var_dump ($ сегментов);
Вероятно, это самый простой способ проанализировать URL-адрес и получить каждый сегмент пути.
Используйте эти URL-адреса в своем выпуске. (Тривиальное)
Часть для целей SEO, кэширования и удобочитаемости, как указывали другие, я хотел бы добавить, что параметры стиля папок также являются стимулом для пользователей «играть» с параметрами. Например, здесь, в Stackoverflow, часто возникает соблазн редактировать URL-адрес вручную при фильтрации по тегам вместо поиска соответствующей кнопки и нажатия на нее.
Существует несколько причин, но в основном:
SEO целей. Поисковые системы обычно игнорируют что-либо после «?» знак знака вопроса, таким образом оставляя вас с unindexes страницами, или, что еще хуже, без индексации вообще.
Readibility:
www.somesite.com/products/devices/keyboards/20,asc www.somesite.com/products/devices/keyboards/20,asc.html
выглядит лучше, чем:
www.somesite.com?show=products&cat=devices&sub_cat=keyboards&sort=asc&items=20
Кэширование.
Информацию о том, как это сделать в Apache: http://httpd.apache.org/docs/2.0/misc/rewriteguide.html
Преимущество – читаемость и, возможно, лучшее размещение в поисковых системах.
Вы можете добиться этого с помощью mod_rewrite
если используете Apache. В PHP вы также можете посмотреть предопределенные глобальные переменные – я думаю, что $_SERVER['REQUEST_URI']
работает, но может быть лучше.
При использовании простого PHP без перезаписи вы также можете удалить .php
из имени файла сценария, если вы правильно настроили свой сервер и, тем самым, получите «хорошие» URL-адреса.