Просмотр полной версии : Mod_rewrite: Подскажите сайт по теме
Подскажите, пжл, сайт по теме для новичка, чтобы можно было самому разобраться.
Вообще нужно убрать .php из адреса и прибавить / на конце. Буду признателен за помощь.
Не флуди. Нужно понятное! То, что переведено с английского или сперто с неизвестного сайта 10 лет назад - я могу найти сам.
начнем так, ты регулярные выражения знаешь?
на phpclub.ru тебе дорога.
achilles
30.09.2006, 00:53
если он задаст такой же вопрос у них на форуме, они его точно пошлют .........
phpclub.ru >> FAQ ищи там
Да, в принципе, вопрос довольно простой. Не стоит ради него отправлять на Гугль. Только есть один момент - mod_rewrite не исправляет ссылки в документе - их придется исправить вручную. То есть, если необходимо убрать .php, то это придется сделать в документе, а потом уже с помощью mod_rewrite преобразовывать ссылки в правильные запросы. А правила mod_rewrite довольно простые. Обычные регулярные выражения, результат работы которых - правильная ссылка.
Например, у вас формируется ссылка вида:
/stat/country/city/
а вам необходим запрос такого вида:
/stat.php?country=value1&city=value=2
Следовательно надо создать приблизительно такой запрос:
RewriteRule ^/stat/(.*)/(.*)/$ /stat.php?country=$1&city=$2
Вообще литературы довольно много, но вся ее суть сводится к регулярным выражениям, поэтому прежде всего RegExp, а потом уже осваивать mod_rewrite! Но все равно - ссылки формировать придется вручную!
Роман Рублевич
30.09.2006, 03:20
http://www.egoroff.spb.ru/portfolio/apache/mod_rewrite.html
http://www.egoroff.spb.ru/portfolio/apache/rewriteguide.html
Лучшая инструкция по мнению большинства.
ya.ru есть подробнейшая документация на ту тему. Сначала пробуй сам искать, потом флуди на форуме.
Вообще нужно убрать .php из адреса и прибавить / на конце. Буду признателен за помощь.
Можно просто написать
<Directory my_directory_path>
DirectoryIndex my_php_script.php
</Directiory>
Можно просто написать
<Directory my_directory_path>
DirectoryIndex my_php_script.php
</Directiory>
А если в директории лежит более одного файла? Просто изменением индексного файла такая проблема не решается. mod_rewrite нужен. Вы же не будете создавать кучу папок по всему серверу? Это перебор.
Шуранов и Bobych спасибо! phpclub - отлично!
Имхо, начать учится можно только на примерах... С нулевыми знаниями гулять по сайтам и читать непонятноые слова - бесполезно.
Разобрался с темой! Но на пути изучения появился вопрос:
У меня есть страница contacts.php, я пишу строку в .htaccess'e:
RewriteRule ^([a-z]+)\.html$ /index.php?page=$1
Далее $page должен схватываться и включаться в шаблоне:
include $page.'.php';
Но вместо этого ОТКРЫВАЕТСЯ страница contacts.php. Такое ощущение, что сервер сначала перебирает дугие расширения, а потом уже использует .htaccess и преобразует запрос.
Кто знает что за полтергейтс?
X-Ception
28.10.2006, 23:52
Переформулируйте вопрос...
Но вместо этого ОТКРЫВАЕТСЯ страница contacts.php
Вместо чего "этого"?
Какой запрос? Какой наблюдается ответ, какая страница выдается? И какая должна выдаваться?
Вместо чего "этого"?
Какой запрос? Какой наблюдается ответ, какая страница выдается? И какая должна выдаваться?
Да это такой ма-а-аленький прикол. Может настройки самого mod_rewrite, может старая или, наоборот, новая версия модуля. Черт его знает, но прикол заключается в чем: вместо передачи в index.php переменной $page с параметром имени страницы, просто открывается эта страница. Где как работает - у меня такой запрос выполняется верно - данные передаются в параметр, а в данном случае - вместо передачи данных просто запускается файл. Такая вот шутка.
Роман Рублевич
29.10.2006, 01:01
Joe, если вы инклюдите файлы посредством index.php то лучше делать расширение не php, а какое-нибудь нейтральное. Например, txt. А то поисковиками заиндексируется неправильно, и будут ваши посетители у вас сайт без дизайна видеть...
Joe, если вы инклюдите файлы посредством index.php то лучше делать расширение не php, а какое-нибудь нейтральное. Например, txt. А то поисковиками заиндексируется неправильно, и будут ваши посетители у вас сайт без дизайна видеть...
Извиняюсь, чуть-чуть не понял, что вы имеете в виду? mod_rewrite работает прозрачно для клиента. А в правиле указано расширение .html, а не .php - так что в данном случае поисковик проиндексирует страницу именно как .html, а не .php
vBulletin® v3.8.4, Copyright ©2000-2024, Jelsoft Enterprises Ltd. Перевод: zCarot