Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Apache

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: ссылки для визиток. как сделать компактнее?
 
 автор: Рома   (25.09.2009 в 17:54)   письмо автору
 
 

на моем сайте (строительно - рекламной тематики), есть страницы других людей, эти люди хотят, чтобы я выдал им короткую ссылку, ведущую контретно на страницу с их информацией, например site.ru/veka

Внутренняя ссылка выглядят так: site.ru/file.php?key1=value&key2=value&key3=value, поэтому если рализовать пример, то корневая директория будет набита папками, что очень не хорошо будет.

ссылки вида site.ru/?veka мне что-то не очень нравятся, хотя с таким подходом нет проблем, просто считать переменную, пробить по базе и перенаправить куда надо, если это необходимо.

Больше всего мне бы подошел вариант veka.site.ru, а при создании такого адреса потребовалось бы обзавестись соответствующей папкой, в которой бы лежал index.php с header`ом, но в виду маленького опыта, незнаю даже позволит ли мне хостер творить такое средствами php.

Какой из этих путей самый оптимальный? Предпологается, что таких папок может быть очень много.

  Ответить  
 
 автор: cheops   (25.09.2009 в 20:17)   письмо автору
 
   для: Рома   (25.09.2009 в 17:54)
 

Может проще будет при помощи mod_rewrite Web-сервера Apache организовать виртуальную ссылку site.ru/veka, тогда вся работа сведётся к созданию нового правила в конфигурационном файле .htaccess?

  Ответить  
 
 автор: Рома   (26.09.2009 в 03:54)   письмо автору
 
   для: cheops   (25.09.2009 в 20:17)
 

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

RewriteEngine on - это я так понял включение режима обработки урлов на лету.

потом идет обработка правила
RewriteRule "регулярное выражение" "прямая ссылка на нужную страницу"

попробовал пример: RewriteRule ^(\d)/? index.php?f=$1
но есть проблема. если обратиться по адресу site.ru/1 , то все нормально, но если обратиться по адресу site.ru/1/ , то показывает две страницы вложенные одна в другую, причем вторая не в моей кодировке, в итоге получается каша. как сделать такое правило, чтобы если введено точь в точь - то переход, а если малейшее отклонение, то чтоб показало главную страницу сайта. с регулярными выражениями я уже сам разберусь.

да, и еще, обязательно ли рег. выр. должно начинаться с символа ^ или нет?

  Ответить  
 
 автор: cheops   (26.09.2009 в 13:11)   письмо автору
 
   для: Рома   (26.09.2009 в 03:54)
 

>где можно посмотреть подробный разбор синтаксиса этой технологии?
Собственно пожалуй только в документации. Вообще, в первую очередь включите логгирование модуля mod_rewrite в виртуальном хосте (будет значительнее проще с ними работать и отлаживать)
    RewriteLog logs/rewrite.log 
    RewriteLogLevel 9


>то показывает две страницы вложенные одна в другую
Хм... странно, это уже скорее логика Web-приложения, mod_rewrite страницу не модифицирует.

>да, и еще, обязательно ли рег. выр. должно начинаться с символа ^ или нет?
Да, если важно, чтобы выражение работало не по всей строке, а с начала.

  Ответить  
 
 автор: Рома   (26.09.2009 в 15:12)   письмо автору
 
   для: cheops   (26.09.2009 в 13:11)
 

а, ну так еще бы не глючило, когда в index подружается index). спасибо, все ок.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования