Как сделать ЧПУ с помощью MOD_REWRITE. Помогите.

pistolero
На сайте с 16.02.2009
Offline
61
16512

Насколько я понял из изучения материалов в разных форумах, Человеко-Понятные URL создаются в файле .htaccess через MOD_REWRITE

На многих форумах есть темы про MOD_REWRITE, но это целый учебник, а я - не программист. И мне нужна элементарная и понятная инструкция.

Подскажите, как сделать (где и что вписать), чтобы URL имели такой вид:

1) Страницы имеют расширение .html

2) Russkie imena stranic otobrazhajutsja translitom, то есть в виде http://www.chtoto.ru/articles/psihologia/test_lushera.html вместо http://www.chtoto.ru/articles.php?group_id=психология&article_id=тест_люшера

3) Имена страниц формируются из названия темы, введенной при заполнении формы сообщения.

Так же прочитал, что ПС давно уже прекрасно индексируют динамические ссылки, и что нет особого смысла в ЧПУ, кроме человеческого фактора (красивее смотрятся) Это правда? Есть у кого реальные примеры?

chemax
На сайте с 07.01.2009
Offline
206
#1

просто красивее смотрятся, удобнее. /ru/forum/322889

Качественный хостинг, VPS и сервера. (http://ihc.ru/?ref=569)
R2
На сайте с 01.02.2007
Offline
28
#2
pistolero:
Человеко-Понятные URL создаются в файле .htaccess через MOD_REWRITE

Как правило, - наоборот...

Вы создаете ЧПУ, а MOD_REWRITE преобразует их к виду понятному для скрипта

A
На сайте с 11.05.2009
Offline
99
#3

Я например делаю так - ЧПУ пример на php + mysql

и красиво и функционально

F4
На сайте с 24.01.2009
Offline
31
#4

Содержимое .htaccess

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . index.php [L]

в файле index.php разбирать содержимое $_SERVER['REQUEST_URI']

моя реализация похожа на предыдущий пример, но в целях безопасности код показывать не хочу :)

Другой способ:

в .htaccess

RewriteEngine on

RewriteRule ^news/([0-9]+)$ news/?id=$1

папка news должна существовать на сервере, в самом скрипте нужно прописать что-то типа

$id=$_GET['id']

этот способ больше не использую

[Удален]
#5

Содержимое .htaccess

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . index.php [L]

этот ваирант правильный по многим причинам, которые в целях безопасности я озвучивать не стану.

[Удален]
#6
FILA44:
Другой способ:
в .htaccess
RewriteEngine on
RewriteRule ^news/([0-9]+)$ news/?id=$1

папка news должна существовать на сервере, в самом скрипте нужно прописать что-то типа
$id=$_GET['id']

Нафига папка нужна? Скрипт news.php или как вы там его назовете: RewriteRule ^news/([0-9]+)$ /news.php?id=$1

javadf добавил 25.06.2009 в 03:24

bearman:
этот ваирант правильный по многим причинам, которые в целях безопасности я озвучивать не стану

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

Но это только если строго к вопросу подходить, если же учесть, что скрипт правильно работает даже если в дурном тоне написан, а на хостингах можно только .htaccess использовать, то все в порядке :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий