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

Форум Apache

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

 

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

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

тема: ModRеWrite
 
 автор: Proger   (06.06.2007 в 09:37)   письмо автору
 
 

Здраствуйте, меня собственно беспокоит вопрос по ModReWrite...

Всё впринцыпе банально, знающие поймут.

Вот кусочек рулеза под реврайт:

RewriteRule ^category-([1-9][0-9]*).html index.php?c=$1


Как его сделать так, что не цифры только пихать можно было, но и ЛЮБЫЕ символы.

Пробовал:

RewriteRule ^category-([a-zA-Z0-9]*).html index.php?c=$1

не пашет, помогите! Горит!

   
 
 автор: Proger   (06.06.2007 в 12:38)   письмо автору
 
   для: Proger   (06.06.2007 в 09:37)
 

Даже изложусь подробнее... (сори за неправильный выбор форума)


В оригинале ссылка такова:
сайт.ру/site.php?cat=gavno&page=gg

Получить желаю:
сайт.ру/site/gavno/gg/

Посмотрел в тему про реврайт и сделал так:


RewriteRule ^site/(.*)/(.*)$ site.php?cat=$1&page=$2 

не работает ;(
Просто вызываеться скрипт site.php, но данные никакие ему не передаються....

   
 
 автор: Unkind   (08.06.2007 в 11:36)   письмо автору
 
   для: Proger   (06.06.2007 в 12:38)
 

Покажите Ваши скрипты, которые должны "принимать данные".
Все должно работать.
И давайте файлам и директориям нормальные имена....

   
 
 автор: Proger   (08.06.2007 в 15:18)   письмо автору
 
   для: Unkind   (08.06.2007 в 11:36)
 

site.php, который принимает лежит в корне сайта, там же где и htaccess, приём данных такой:

$cat     = preg_replace('/[^a-z]+/', '',$_GET['cat']);
$page     = preg_replace('/[^0-9A-Za-z_]+/', '',$_GET['page']);

*вывод страницы из бд по параметрам из GET*


если зайти просто: domen.ru/site.php?cat=help&page=404
то всё генерируеться, берёться из базы и работает!

а если через реврайт запустить соответственно правилам:

domen.ru/site/help/404/

то ничего не показывает, а пишет: файл не найден на сервер (так запланированно в скрипте если данных по парамерам нет в БД).
Пытался для теста сделать echo $cat.' - '.$page; - выводит только " - "...

Вообщем что делать?

   
 
 автор: Unkind   (08.06.2007 в 15:23)   письмо автору
 
   для: Proger   (08.06.2007 в 15:18)
 

В Вашем случае нужно делать запрос не
domen.ru/site/help/404/
А domen.ru/site/help/404

   
 
 автор: Proger   (08.06.2007 в 23:25)   письмо автору
 
   для: Unkind   (08.06.2007 в 15:23)
 

знаю, понимаю и вижу сам ! НО оно не работает никак! Данный рулез должен работать и на денвере и на вирт. хосте, но не работает и опять же скрипт получает пустые напроч параметры :( Почему не понимаю!

Притом аналогичный более менее этому, запрос работает:


RewriteRule ^pda/forum([1-9][0-9]*).html pda_forums.php?forum=$1&%{QUERY_STRING}


Что делать не представляю, а регулярные выражения не смотря на прочитанную литературу для меня всё равно очень очень тёмный лес, где не работает фонарик....

   
 
 автор: Proger   (08.06.2007 в 23:30)   письмо автору
 
   для: Unkind   (08.06.2007 в 15:23)
 

Вот тебе на! Стоило только сменить папку site на просто s, и всё чудесным образом заработало! Не знал, что это слово ModRewrite или апач резервирует %(

Большое спасибо за помощь!

   
Rambler's Top100
вверх

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