Консультация № 116085
26.12.2007, 20:11
0.00 руб.
0 4 4
Здравствуйте уважаемые эксперты, у меня возникло несколько вопросов:
1) Часто встречаются ссылки типа http://rusfaq.ru/users/Best Скажите зачем и как их так делают, ведь в конце обычно подразумевается /php или нет обьясните назначение скажите как делать такие ссылки

Обсуждение

Неизвестный
26.12.2007, 21:42
общий
это ответ
Здравствуйте, Вадим Алексеевич Антонов!
Данная технология называется ЧПУ(человекопонятный урл).

Релизация может быть разными способами, но наиболее оптимальный - это создание файла .httaccess

Думаю не стоит подробно описывать этот метод в интернете полно ресурсов на эту теме и вот один из них:
http://spectator.ru/technology/php/user_friendly_urls

Удачи !
Неизвестный
26.12.2007, 21:46
общий
это ответ
Здравствуйте, Вадим Алексеевич Антонов!
Существует как минимум две ситуации(или способа - как хотите):
1) Когда мы указываем для какого-либо каталога(в данном случае - /users/Best/) индексный файл(обычно он называется index.php, но их можно указывать несколько - в порядке уменьшения приоритетности), то мы можем ссылаться на него, указывая ссылку просто на каталог, без явного указания самого файла. Вызовется файл с наивысшим приоритетом(на случай если индексных файлов в каталоге присутствует более одного). Но их надо обязательно перечислить. Самый простой путь - создать файл .htaccess с текстом:

DirectoryIndex index.php index.html news.php my.php

В случае наличия всех 4-х файлов будет вызван index.php,а если, скажем, присутствует news.php + index.html -> index.html и т. д.

Естественно, чтобы такое работало, все каталоги должны существовать. И файлы должны существовать в них индексные.

2) Первый способ - для дилетантов, а если точнее, то это, скорее, способ самообмана, чем способ сделать ЧПУ(человеко-понятный УРЛ). Второй способ гораздо более гибок. Для того, чтобы его использовать, на сервере должен быть разрешен mod_rewrite(спец. модуль сервера Apache). Про второй способ имеет смысл говорить либо много, либо совсем ничего(потому что это действительно "глыба"!), однако вкратце скажу, что он дает возможность <i>переписывания URL</i>. Это заключается в том, что в нашем случае <i>не существует в корневом каталоге сайта каталога /users</i>. Реальный адрес может быть далеко не таким красивым и изящным и может напоминать адрес страницы, с которой я Вам пишу ответhttp://rusfaq.ru/?Step=ask&Action=WebForm&UniqueID=5097300.22531.61568.81062.43714.1199121100

Простейший пример перезаписи URL:

# Приказываем разрешить перезапись URL
RewriteEngine On
# Пишем правило перезаписи
RewriteRule .* index.php

В результате выполнения этого правила какой бы адрес(относительно каталога, для которого мы прописали данные инструкции) мы не ввели в адресную строку браузера, выполнится файл index.php данного каталога. В этом каталоге следует создать старый добрый файл .htaccessи записать в него наши инструкции. Вот и вся конструкция.
Неизвестный
26.12.2007, 21:49
общий
это ответ
Здравствуйте, Вадим Алексеевич Антонов!
Вообще-то это зависит от настроек сервера апаче) по умолчанию так и есть ка вы сказали)) если вы укажете ссылку на определенную папку а не файл .php, то сервер ищет в этой папке index.php и открывает его)) Все это настраиваемое))
Но может быть и так, что можно создать виртуальные ссылки, т.е. писать такого рода ссылки даже при отсутствии таковых папок на сервере. Это делается с помошью дополнительного модуля для апаче) Называется mod_rewrite. О нем можете почитать здесь

http://www.egoroff.spb.ru/portfolio/apache/mod_rewrite.html
Неизвестный
31.12.2007, 13:38
общий
это ответ
Здравствуйте, Вадим Алексеевич Антонов!
возможно, что подобная ссылка дается на папку каталога, в которой есть файл index.php который, в этом случае грузится по умолчанию, согласно настройкам хостинга. Так же это можно сделать с помощью редиректа в файле .htaccess, но об этом я Вам рассказать не смогу. Удачи!
Форма ответа