|
|
|
| Доброго времени суток, друзья. Подскажите, пожалуйста, что можно почитать о ЧПУ. Чтоб было все расписано и доходчиво. Пишу сайт, очень много различных GET-запросов у меня, все то, что находил по ЧПУ не подходит и поэтому прошу Вашего совета. Заранее благодарю. | |
|
|
|
|
|
|
|
для: Rikone
(03.06.2014 в 09:16)
| | Тут все зависит от того, что вы считаете за "расписано и доходчиво". Для ЧПУ нужно, как минимум, хоть немного понимать, что такое рег. выражения. Без этого можно только объяснить принципы. Попробую по-простому:
1. Когда браузер запрашивает у сервера некий документ, сервер сначала смотрит, а не надо ли ему адрес запрошенного документа как-нибудь трансформировать.
2. Если надо, то он смотрит правила трансформации.
3. Если адрес совпадает с шаблоном, переданным в одном из правил трансформации, то он выполняет это правило. Например:
RewriteEngine on #Включаем перезапись адресов
RewriteRule ^.*$ index.php [L] #Все адреса перенаправляются на index.php
| В показанном коде для всех адресов без исключения (.*) будет открыт файл index.php. Директива L означает, что если правило удовлетворяет сервер, то следующие правила смотреть не надо.
Сейчас в абсолютном большинстве движков используется архитектура, которая не требует особенных знаний по ЧПУ и рег. выражениям. Там чаще всего все запросы перенаправляются на index.php, который играет роль диспетчера адресов.
По рег. выражениям есть отдельный форум.
P.S. cheops, скиньте ссылку на книгу о рег. выражениях, она где-то здесь была
P.P.S. Полностью прочитал ваше сообщение. Много GET-параметров обычно бывает либо в админке (где ЧПУ не имеет смысла), либо в поиске (поправьте меня, если я не прав). Для админки, как я сказал, ЧПУ теряет смысл , а для поиска такие правила тоже бесполезны. | |
|
|
|
|
|
|
|
для: Commander
(03.06.2014 в 19:55)
| | Спасибо за ответ. Нет, это не админка, у меня много различных запросов, т.к. предоставляю пользователю больше "свободы" на сайте, или больший выбор, потому их так много у меня ( различных GET-переменных). Т.е. чтобы писать ЧПУ нужно просто знать регулярные выражения? А что-нибудь про сам апач или про htaccess знать не нужно? Я потому и спрашиваю все это, не знаю что учить акромя рег. выражений. Заранее благодарю. | |
|
|
|
|
|
|
|
для: ubahuba
(04.06.2014 в 07:39)
| | А что-нибудь про сам апач или про htaccess знать не нужно?
Код, который я привел, необходимо как раз в .htaccess поместить. И все. Небольшие тонкости есть, но их немного. | |
|
|
|
|
|
|
|
для: Commander
(04.06.2014 в 09:39)
| | Еще раз спасибо. Можете привести пример? К примеру есть запросы такого вида:
[url]site.ru/?sector=XXX&genre=YYY&country=ZZZ[/url]
а есть просто:
[url]site.ru/?year=DDD[/url]
Ну и так далее. Как мне их преобразовать в:
[url]
site.ru/year
site.ru/XXX/YYY/ZZZ[/url]
Заранее спасибо. | |
|
|
|
|
|
|
|
для: ubahuba
(04.06.2014 в 13:01)
| |
RewriteEngine on
RewriteRule ^([0-9]{4})$ index.php?year=$1 [L] #
RewriteRule ^([a-zA-Z]+)/([a-zA-Z]+)/([a-zA-Z]+)$ index.php?sector=$1&genre=$2&country=$3 [L]
|
Все эти запросы будут передаваться файлу index.php | |
|
|
|
|
|
|
|
для: Commander
(04.06.2014 в 18:56)
| | Огромное спасибо. А что почитать можно, чтоб самому во все это вникнуть? | |
|
|
|
|
|
|
|
для: ubahuba
(04.06.2014 в 19:04)
| | Вот здесь лежит книжка по рег. выражениям. А что непонятно будет - задавайте вопросы. | |
|
|
|