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

Форум Apache

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

 

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

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

тема: Помогите сделать ЧПУ с большим количеством подкаталогов
 
 автор: lElectroHardl   (09.01.2011 в 21:35)   письмо автору
 
 

На вики пишут пример только для страницы вида
http://site.ru/article/34

А если мне нужны ссылки вида
http://site.ru/article/34/cat/13/subcat/44/end/11
или же
http://site.ru/article/all/cat/13/subcat/44/end/11

Помогите пожалуйста, а то мой RewriteEngine
RewriteRule ^page/([0-9]+)/? page.php?page=$1 [L]
RewriteRule ^cat/([0-9]+)/? page.php?cat=$1 [L]
RewriteRule ^cat/(all)/? page.php?cat=$1 [L]
RewriteRule ^cat/(top)/? page.php?cat=$1 [L]
не справляется.

  Ответить  
 
 автор: lElectroHardl   (09.01.2011 в 21:59)   письмо автору
 
   для: lElectroHardl   (09.01.2011 в 21:35)
 

Помогите, пожалуйста. Или подскажите, где покопать.

  Ответить  
 
 автор: lElectroHardl   (09.01.2011 в 22:33)   письмо автору
 
   для: lElectroHardl   (09.01.2011 в 21:35)
 

Я что-то накопал и у меня оно якобы работает. Если обращаться ко 2-му уровню вложенности, все хорошо, но если обратиться к 1-му, выдает Not Found.
RewriteRule ^page/([0-9]+)/cat/([0-9|all|top]+)/? page.php?page=$1&cat=$2 [L] # page - 1-й уровень, cat - 2-й

  Ответить  
 
 автор: vadimka   (11.01.2011 в 17:47)   письмо автору
 
   для: lElectroHardl   (09.01.2011 в 22:33)
 

не очень понятно про уровень, выложите ссылку. и вопрос в конце должен быть выпросительный знак или Вы перепутали со знаком доллара?

  Ответить  
 
 автор: vadimka   (11.01.2011 в 17:49)   письмо автору
 
   для: lElectroHardl   (09.01.2011 в 22:33)
 

не очень понятно про уровень, выложите ссылку. и вопрос в конце должен быть выпросительный знак или Вы перепутали со знаком доллара?
^page/([\d]+)/cat/([\d+|all|top])/$

ссылки:
<a href="page/4/cat/8/"></a>
<a href="page/4/cat/all/"></a>
<a href="page/4/cat/top/"></a>

  Ответить  
 
 автор: lElectroHardl   (12.01.2011 в 12:04)   письмо автору
 
   для: vadimka   (11.01.2011 в 17:49)
 

Так-то оно замечательно работает, но у меня есть страницы из 1, 2-х и более переменных. То есть:
1 переменная - <a href="page/4"></a>
2 переменных - <a href="page/4/cat/8/"></a>
3 переменных - <a href="page/4/cat/8/foto/3"></a>
и 4 переменных - <a href="page/4/cat/8/foto/3/page/1"></a>

Мой ЧПУ работает только при 2-х переменных. Т.к., если указываю только 1 или 3+ - выдает Not Found.

  Ответить  
 
 автор: lElectroHardl   (12.01.2011 в 21:24)   письмо автору
 
   для: lElectroHardl   (12.01.2011 в 12:04)
 

Help me.

  Ответить  
 
 автор: Trianon   (12.01.2011 в 21:29)   письмо автору
 
   для: lElectroHardl   (12.01.2011 в 21:24)
 

ЧПУ делают под конкретную строку GET-запроса (а не под сферического коня в вакууме.)

  Ответить  
 
 автор: lElectroHardl   (12.01.2011 в 21:31)   письмо автору
 
   для: Trianon   (12.01.2011 в 21:29)
 

Если я пишу несколько примерно таких
RewriteRule ^page/([0-9]+)/? page.php?page=$1 [L] 
RewriteRule ^cat/([0-9]+)/? page.php?cat=$1 [L] 
RewriteRule ^cat/(all)/? page.php?cat=$1 [L] 
RewriteRule ^cat/(top)/? page.php?cat=$1 [L]

строк, мне выдает ошибку

  Ответить  
 
 автор: Trianon   (12.01.2011 в 21:33)   письмо автору
 
   для: lElectroHardl   (12.01.2011 в 21:31)
 

Я не увидел здесь строки запроса.

---
к предыдущей реплике.
Еще бы добавил, что ЧПУ делают те, кто как минимум досконально разобрался с принципами а) естественной URL-адресации, и б) регулярных выражений, но, к сожалению, это не так.
Делают все кому не лень, и в результате по современному инету подчас приходится ходить как по свежеудобренному колхозному полю.

  Ответить  
 
 автор: lElectroHardl   (18.01.2011 в 16:48)   письмо автору
 
   для: Trianon   (12.01.2011 в 21:33)
 

Все, я настроил ЧПУ. Наконец-то дошло, что нужно ставить ЧПУ "для каждой ссылки".

  Ответить  
 
 автор: Косорылый   (19.01.2011 в 11:28)   письмо автору
 
   для: lElectroHardl   (18.01.2011 в 16:48)
 

а если ссылок будет 100 ,то что и правил будет столько же?

  Ответить  
 
 автор: lElectroHardl   (20.01.2011 в 19:26)   письмо автору
 
   для: Косорылый   (19.01.2011 в 11:28)
 

Как писал Trianon "ЧПУ делают под конкретную строку GET-запроса" - Да.
Разве можно по-другому?

  Ответить  
 
 автор: kosta_in_net   (28.01.2011 в 17:51)   письмо автору
 
   для: lElectroHardl   (20.01.2011 в 19:26)
 

можно. Смотри http://сайт-веб-студии.рф/ никакого штассесса

  Ответить  
 
 автор: qwensx   (28.01.2011 в 21:45)
 
   для: kosta_in_net   (28.01.2011 в 17:51)
 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title></title>
<meta name="Description" content="">
<meta name="Keywords" content="">

  Ответить  
 
 автор: kosta_in_net   (28.01.2011 в 23:36)   письмо автору
 
   для: qwensx   (28.01.2011 в 21:45)
 

и что в этом коде?

  Ответить  
 
 автор: wens   (29.01.2011 в 18:19)
 
   для: kosta_in_net   (28.01.2011 в 23:36)
 

<title></title> 

  Ответить  
 
 автор: kosta_in_net   (31.01.2011 в 11:23)   письмо автору
 
   для: wens   (29.01.2011 в 18:19)
 

Там тексты только пишутся. Поэтому и титлу с ключевыми не заполнены. Там еще многое не заполнено. Но топик был не о титлах. Зри в корень

  Ответить  
 
 автор: lElectroHardl   (30.01.2011 в 18:10)   письмо автору
 
   для: qwensx   (28.01.2011 в 21:45)
 

Кстати и это тоже порадовало:
<META name="Author" content="Красносельский К. К."> - зачем это? Нет, я знаю, что оно обозначает, писать-то это зачем?
<META NAME="ROBOTS" CONTENT="index, follow"> - бесполезно, для таких строк есть robots.txt

  Ответить  
 
 автор: kosta_in_net   (31.01.2011 в 11:26)   письмо автору
 
   для: lElectroHardl   (30.01.2011 в 18:10)
 

это привычка со времен динозавров. На многих сайтах есть "Мета генератор Джумла". Что с того? Эти теги не мешают сайту работать

  Ответить  
 
 автор: lElectroHardl   (31.01.2011 в 16:16)   письмо автору
 
   для: kosta_in_net   (31.01.2011 в 11:26)
 

А проводить периодически корректировку сайта так уж сложно, да?

  Ответить  
 
 автор: kosta_in_net   (10.02.2011 в 12:46)   письмо автору
 
   для: lElectroHardl   (31.01.2011 в 16:16)
 

Я так понимаю, наехать на меня важнее, чем узнать, как решить твою задачу?
Если б я хотел обсудить свои метатеги, я б завел топик на эту тему.

  Ответить  
 
 автор: lElectroHardl   (13.02.2011 в 16:14)   письмо автору
 
   для: kosta_in_net   (10.02.2011 в 12:46)
 

Какие проблемы?

  Ответить  
 
 автор: Косорылый   (13.02.2011 в 21:35)   письмо автору
 
   для: lElectroHardl   (13.02.2011 в 16:14)
 

Для того чтобы сделать ЧПУ ( правила реврайта ) надо определится какие ( вид ) ссылки вы будите использовать на своём сайте (сделайте их полный список) отсюда и пляшите.

  Ответить  
 
 автор: lElectroHardl   (15.02.2011 в 16:18)   письмо автору
 
   для: Косорылый   (13.02.2011 в 21:35)
 

Уже все давно готово и отлично работает, спасибо.

  Ответить  
 
 автор: lElectroHardl   (30.01.2011 в 18:08)   письмо автору
 
   для: kosta_in_net   (28.01.2011 в 17:51)
 

Ага, а когда копируешь такой сайт в буфер (Хром 8), получается такое "http://xn-----6kcfeoe1aac0ghhgp.xn--p1ai/%D0%A3%D1%81%D0%BB%D1%83%D0%B3%D0%B8_%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F_%D1%81%D0%B0%D0%B9%D1%82%D0%BE%D0%B2/" => "http://сайт-веб-студии.рф/Услуги-создания-сайтов/".

  Ответить  
 
 автор: kosta_in_net   (31.01.2011 в 11:43)   письмо автору
 
   для: lElectroHardl   (30.01.2011 в 18:08)
 

возможность потестить русскоязычные домены появилась только сейчас. Так что, смотрим, что из этого выходит. На чем-то же нужно смотреть? Там даже в первых строках сказано: "Фактически, данный сайт является тестовым, так как работа кириллических доменов не прошла проверку временем".
Шестой ишак, например, вообще понимает адрес только как http://xn-----6kcfeoe1aac0ghhgp.xn--p1ai/ Если же пытаться набрать русским языком, то не находит домена.
Firefox 3.6.3 переворачивает адрес в http://xn-----6kcfeoe1aac0ghhgp.xn--p1ai/ даже если набрать русским языком (но находит сайт).
Хром 6.0.472.62 показывает по-русски, но при копировании получается именно то, о чем пишешь ты.
Заморочек нет только в Сафари и Опере (по крайней мере, в моих версиях).
А как бы мы узнали о том, что происходит эта абракадабра, если б не провели эксперимент?
Но суть обсуждения была не в том, как лажается кирилица, а в том, что для ЧПУ колдавство с мод_реврайтером не требуется. И я показал тому самый наглядный пример: сайт не просто с ЧПУ, он даже с русским ЧПУ. И при этом информация хранится в базе, а не в текстовых файлах, на которые указывает адресная строка.
Я не принадлежу к тем людям, которые считают, что такой адрес:
http://сайт-веб-студии.рф/Новости_студии/Новогодний_подарок_для_нашей_стидии.html
Проще запомнить (и безошибочно набрать), чем
http://site-web-studii.ru/?cat=2&id=10
Но эксперимент - штука полезная.

Вот, кстати, результат копирования адресной строки из запроса "программирование" в википедии:

FF http://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5
Chrome http://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5
IE 6 http://ru.wikipedia.org/wiki/Программирование
Opera 9.6 http://ru.wikipedia.org/wiki/Программирование
Safari 5.0.2 http://ru.wikipedia.org/wiki/Программирование

Не везде презентабольно выглядит. Но википедия свое существование не прекратила ;)

  Ответить  
 
 автор: Косорылый   (01.02.2011 в 12:18)   письмо автору
 
   для: lElectroHardl   (20.01.2011 в 19:26)
 

Даже нужно!

  Ответить  
 
 автор: Красная_шляпа   (14.02.2011 в 12:30)   письмо автору
 
   для: lElectroHardl   (09.01.2011 в 21:35)
 


RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,QSA]

  Ответить  
 
 автор: sistar   (14.02.2011 в 18:05)   письмо автору
 
   для: Красная_шляпа   (14.02.2011 в 12:30)
 

даже знаю, а использовать платформу будеш какую?

  Ответить  
 
 автор: Косорылый   (14.02.2011 в 18:11)   письмо автору
 
   для: sistar   (14.02.2011 в 18:05)
 

Прошу прощения, что отвечаю за Красная_шляпа
Вообще-то ,на форуме принято уважительно (на ВЫ ) обращаться к собеседнику ( оппоненту )
А во вторых , что значить понятие платформы в данном случае ?

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

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