Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Подскажите с Mod_Rewrite (чпу)

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
inkor
Отправлено: 15 Сентября, 2009 - 18:02:13
Post Id


Новичок


Покинул форум
Сообщений всего: 47
Дата рег-ции: Янв. 2008  


Помог: 0 раз(а)




Значится так.

делаю пока на денвере

Есть страничка index.php через мод-реврайт она превращается в index.html (это я сделал)
далее на страничке index есть ссылочки типа
CODE (text):
скопировать код в буфер обмена
  1. <a href="post.php?title=bla-bla-bla">bla-bla-bla</a>


bla-bla-bla - берется из базы

Через мод-реврайт хочу сделать чпу типа

на сайте _http://www[dot]generateit[dot]net/mod-rewrite/ сделал код реврайта
CODE (text):
скопировать код в буфер обмена
  1. RewriteRule ^([^/]*)\.html$ /post.php?title=$1 [L]


мой файл .htaccess

CODE (text):
скопировать код в буфер обмена
  1. RewriteEngine on
  2. RewriteRule ^.htaccess$ - [F]
  3.  
  4. Options +FollowSymlinks
  5. RewriteBase /
  6.  
  7.  
  8. RewriteRule ^(.*).html$ index.php
  9.  
  10. # эту строчку мне сайт выдал
  11. RewriteRule ^([^/]*)\.html$ /post.php?title=$1 [L]


файл post.php принимает данные через Гет

при переходе по ссылке денвер выдает ошибку

что я сделал не правильно? нужно ли менять код ссылки на странице index? если да то как?
 
 Top
inkor
Отправлено: 20 Сентября, 2009 - 16:34:41
Post Id


Новичок


Покинул форум
Сообщений всего: 47
Дата рег-ции: Янв. 2008  


Помог: 0 раз(а)




И так при передаче по ссылке в index - файл, все выводится как надо < в .htaccess прописано
CODE (text):
скопировать код в буфер обмена
  1. RewriteRule (-a-z0-9)+\.html$ index.php?title=$1 [L]


Ссылки в индексном файле выглядят так:
CODE (text):
скопировать код в буфер обмена
  1. <a href="<?php echo $myrow['title'] ?>.html">bla-bla-bla</a>


а мне нужно чтобы параметр ГЕТ передавался в post.php

в .htaccess пишу
CODE (text):
скопировать код в буфер обмена
  1. RewriteRule post/(-a-z0-9)+\.html$ /post.php?title=$1 [L]


то по ссылке
CODE (text):
скопировать код в буфер обмена
  1. <a href="post/<?php echo $myrow['title'] ?>.html">bla-bla-bla</a>


в файл пост не приходит ни каких параметров.

в файле index использую следующее:

CODE (text):
скопировать код в буфер обмена
  1. $url = $_SERVER['REQUEST_URI'];
  2.        
  3.         //echo $url;
  4.        
  5.         preg_match ("/(?<=\/)(.+?)(?=\.html)/" , $url , $title);// ловим титл
  6.        
  7.         unset ($title[0]);
  8.         //echo $title[1];


и все работает , НО в файле post ? куда надо послать ГЕТ код

CODE (text):
скопировать код в буфер обмена
  1. $url = $_SERVER['REQUEST_URI'];
  2.        
  3.         //echo $url;
  4.        
  5.         preg_match ("/(?<=\/post\/)(.+?)(?=\.html)/" , $url , $title);// ловим титл
  6.        
  7.         unset ($title[0]);
  8.         //echo $title[1];


не работает, тупо в браузер отображает индексную страницу со съехавшим дизайном.

титл в транслите типа bla-bla-bla

Пожалуйста помогите, или ссылок дайте где эта тема разжевана Белый флаг
 
 Top
Ch_chov
Отправлено: 20 Сентября, 2009 - 17:30:33
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




Попробуй в .htaccess вместо [L] поставить [L,QSA]
(Добавление)
http://www[dot]egoroff[dot]spb[dot]ru/portfo[dot][dot][dot]mod_rewrite[dot]html
 
 Top
inkor
Отправлено: 20 Сентября, 2009 - 19:31:16
Post Id


Новичок


Покинул форум
Сообщений всего: 47
Дата рег-ции: Янв. 2008  


Помог: 0 раз(а)




Спасибо! разобрался.

Будь проклят этот ЧПУ Радость , одну проблему решил, появилась другая.

Суть проблемы - есть форма поиска причем при нажатии кнопки "искать"(с индексной страницы) все в порядке, переходит куда надо - site.ru/search.html , но когда со страницы post нажимаем кнопку "искать" - переходим на site.ru/post/search.html (ошибка)
как сделать чтобы со всех страниц при поиске переходить на site.ru/search.html ???
 
 Top
Ch_chov
Отправлено: 20 Сентября, 2009 - 21:59:49
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




Указывай в action абсолютный путь к search.html
 
 Top
LEONeso
Отправлено: 17 Марта, 2011 - 15:23:00
Post Id



Посетитель


Покинул форум
Сообщений всего: 499
Дата рег-ции: Янв. 2010  
Откуда: Россия, Москва


Помог: 1 раз(а)




Не хотел плодить темы, решил спросить в этой.
Делаю ЧПУ (1й, 2й и 3й уровень - это кол-во передаваемых get параметров), но без результатно.

Нашел следующий htaccess
CODE (htmlphp):
скопировать код в буфер обмена
  1. RewriteEngine on
  2.  
  3. AddDefaultCharset windows-1251
  4.  
  5. Options +FollowSymLinks
  6. DirectoryIndex index.php
  7.  
  8. #все запросы будут перенаправлены на index.php.
  9. Action throw /index.php
  10.  
  11. <FilesMatch index.php>
  12. ForceType application/x-httpd-php
  13. </FilesMatch>
  14.  
  15. RewriteBase /
  16.  
  17. #lvl 1
  18. # если пустая, то главная
  19. RewriteRule ^$ index.php?view=main [L]
  20.  
  21. # парсит линки 1 уровня, и передает ёё в переменной view (/furl или  /furl/ -> view=furl )
  22. RewriteRule ^([a-zA-Z0-9]+)/{0,1}$ index.php?view=$1 [L]
  23.  
  24. # парсит команду, и передает ёё в переменной act (/furl/-exit -> view=furl&act=exit )
  25. RewriteRule ^-([a-zA-Z0-9]+)$ index.php?view=main&act=$1   [L]
  26.  
  27. # парсит передаваемые переменные после "/"(/act=delpost&id=666 -> view=main&act=delpost&id=666)
  28. RewriteRule ^([a-zA-Z0-9\q=&\e]+)$ index.php?view=main&$1 [L]
  29.  
  30. #lvl 2
  31. RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9\q=&\e]+)$ index.php?view=$1&$2[L]
  32. RewriteRule    ^([a-zA-Z0-9]+)/-([a-zA-Z0-9]+)$ index.php?view=$1&act=$2[L]
  33.  
  34. #Errors
  35. ErrorDocument 404 /index.php?view=error&errorId=404.htaccess

хорошо, что очень наглядно все сделано, но и даже это мне не помогло.

Подскажите, как делается ЧПУ, если передать:
1о уровневый - www.php.su/?get1=parm преобразовать в www.php.su/parm
2х уровневый - www.php.su/?get1=parm&get2=parm преобразовать в www.php.su/parm/parm
3х уровневый - www.php.su/?get1=parm&get2=parm&get3=parm преобразовать в www.php.su/parm/parm/parm

я так понимаю при переходе www.php.su/parm/parm/parm будет передан - www.php.su/?get1=parm&get2=parm&get3=parm ?

или я в чем-то ошибся?


-----
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
 
 Top
pmdesign
Отправлено: 17 Октября, 2011 - 14:03:26
Post Id



Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Июнь 2009  
Откуда: Юрга


Помог: 0 раз(а)




inkor пишет:
Спасибо! разобрался.

Будь проклят этот ЧПУ Радость , одну проблему решил, появилась другая.

Суть проблемы - есть форма поиска причем при нажатии кнопки "искать"(с индексной страницы) все в порядке, переходит куда надо - site.ru/search.html , но когда со страницы post нажимаем кнопку "искать" - переходим на site.ru/post/search.html (ошибка)
как сделать чтобы со всех страниц при поиске переходить на site.ru/search.html ???


сам столкнулся с такой проблемкой, как решил тут написано http://pmvip[dot]info/blog/855-karti[dot][dot][dot]ylki-mod_rewrite
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Apache и другие веб-серверы »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB