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

Форум Apache

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

 

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

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

тема: mod_rewrite
 
 автор: makigo   (02.08.2012 в 14:04)   письмо автору
 
 

Хотел применить mod_rewrite.С начало было много проблем (непоказывал картинки и css). Но написав в <head> </head> Всего лишь <base href="http://ttt/"> (local server) все нормализовалось.

У меня 2 вопроса.

1) Достаточно ли <base href="http://ttt/">

2) В .htaccess у меня:



RewriteEngine On

RewriteRule ^([^/]*)/([^/]*)\.html$ /index.php?lang=$1&cat=$2 [L] // обыкновенные страницы

RewriteRule ^([^/]*)/([^/]*)/([^/]*)\.html$ /index.php?start=$1&lang=$2&cat=$3 [L] // страницы с страничками (start - с какого числа показывать)

RewriteRule ^([^/]*)/([^/]*)/([^/]*)\.html$ /index.php?lang=$1&cat=$2&id=$3 / Показывает отдельный запись с id


С первыми двумя все нормально работает а с последним (с id) путает переменные

Помогите понять что не так делаю?

Заранее спасибо!

  Ответить  
 
 автор: cheops   (02.08.2012 в 14:16)   письмо автору
 
   для: makigo   (02.08.2012 в 14:04)
 

Что-то не понятно... у вас же два последних регулярных выражения абсолютно одинаковы - конечно, происходит путаница, так как все URL обрабатываются только первым правилом. Нужно сузить охват случаев, чтобы регулярные выражения отличались друг от друга.

  Ответить  
 
 автор: makigo   (02.08.2012 в 14:23)   письмо автору
 
   для: cheops   (02.08.2012 в 14:16)
 

Так помогло ;)

Правильно сделал?

RewriteEngine On

RewriteRule ^([^/]*)/([^/]*)\.html$ /index.php?lang=$1&cat=$2 [L] // обыкновенные страницы

RewriteRule ^([0-9]+)/([^/]*)/([^/]*)\.html$ /index.php?start=$1&lang=$2&cat=$3 [L] // страницы с страничками (start - с какого числа показывать)

RewriteRule ^([^/]*)/([^/]*)/([0-9]+)\.html$ /index.php?lang=$1&cat=$2&id=$3 / Показывает отдельный запись с id

  Ответить  
 
 автор: cheops   (02.08.2012 в 16:49)   письмо автору
 
   для: makigo   (02.08.2012 в 14:23)
 

Ну вроде да, однако лучше все еще раз проверить и в начале URL использовать какое-то однозначное имя, которое позволит привязывать правило к конкретному типу ссылок. Иначе потребуется добавить еще 3-4 правила и составить их, чтобы они не влияли друг на друга, будет довольно сложно.

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

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