|
|
19.02.2011, 20:22
|
|
iprus
Зарегистрирован: 2008-10-07
Сообщений: 73
|
Кто-нибудь придумал как писать на NetCat свои рабочие RewriteRule без правки e404.php? Или поддержка NetCat может раз и навсегда расскажет как обходить их обработчик. Весь инет перекопал, этот вопрос у многих, но он по прежнему не решаем. Сам не в состоянии пока разобраться, опыта нет.
Как-то совсем грустно без возможности делать собственные ЧПУ.
|
|
|
19.02.2011, 22:20
|
|
Denis
Зарегистрирован: 2008-07-15
Сообщений: 666
|
Пример правил, открывающий профиль пользователя ( /profile/profile_3.html ) по ссылкам вида: /id3
Код:RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^id([0-9]+)$ /netcat/require/e404.php?REQUEST_URI=/profile/profile_$1.html [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ /netcat/require/e404.php?REQUEST_URI=$1 [L,QSA]
|
|
|
20.02.2011, 16:05
|
|
iprus
Зарегистрирован: 2008-10-07
Сообщений: 73
|
Профайлы пользователей нормально итак реализованы через создание раздела без писанины в .htaccess.
Лично я под профайлы создал раздел users с компонентом user и получилось /users/user_ID.html, а закрытые подразделы профайлов (личного кабинета) пользователей у меня разбиты параметром cat под разные запросы (сам дописал), т.е. ...html?cat=1, ...html?cat=2, ...html?cat=3 и т.д.
Но мне нужно сейчас решить по тегам.
Попробовал по Вашему примеру так (привожу только среднюю строчку):
RewriteRule ^tags/?tag=$1 /netcat/require/e404.php?REQUEST_URI=/tags/tag_([0-9]+)\.html [L,QSA]
Методом тыка еще по всякому перепробовал (слэши убирал, переворачивал и т.п.).
Но не заработало, всегда страница не найдена.
Для страниц тегов урлы вида /?tag=ID не серьезно как-то, если думать о se-оптимизации.
|
|
|
21.02.2011, 13:00
|
|
iprus
Зарегистрирован: 2008-10-07
Сообщений: 73
|
Denis, что не так я выше в коде htaccess написал?
|
|
|
21.02.2011, 14:20
|
|
Asiat
Аниматика
Зарегистрирован: 2005-12-12
Сообщений: 576
|
Цитата:RewriteRule ^tags/?tag=$1 /netcat/require/e404.php?REQUEST_URI=/tags/tag_([0-9]+).html [L,QSA]
посмотрите пример выше, вы ж все перековеркали наоборот ..
|
|
|
21.02.2011, 16:17
|
|
iprus
Зарегистрирован: 2008-10-07
Сообщений: 73
|
Я делал и как выше и по всякому, о чем выше уже писал "...Методом тыка еще по всякому перепробовал (слэши убирал, переворачивал и т.п.)..."
Строки до и после моей строки я выше не привел, чтобы не повторять. Суть-то в правильности написания средней строки.
Никак не работает.
Может покажите как мой вариант (для тегов) в правильном виде?
А то я ни бум-бум в htaccess и его составляющих, просто тупо передираю чужие примеры на свою задачу.
Вот так в моем случае (для тегов) верно или нет (на основе примера Denis)?
Код:RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^tags/?tag=$1 /netcat/require/e404.php?REQUEST_URI=/tags/tag_([0-9]+)\.html [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ /netcat/require/e404.php?REQUEST_URI=$1 [L,QSA]
Не работает.
Поправьте пожалуйста что не так.
|
|
|
21.02.2011, 16:24
|
|
iprus
Зарегистрирован: 2008-10-07
Сообщений: 73
|
Кто-нибудь ответьте пожалуйста раз уж и навсегда как преобразовывать в NetCat урлы из типа таких /?param=... в ЧПУ типа /param_...html, а то пичкают какими-то нерабочими примерами. Или что это доказано невозможно, только честно.
Проверил то что предложил с профайлами выше Denis - не работает.
|
|
|
22.02.2011, 15:15
|
|
Denis
Зарегистрирован: 2008-07-15
Сообщений: 666
|
Правила пишутся наоборот: "откуда - куда"
С примером, который я привел выше ( с профайлами пользователей ) - все просто, там нет GET-параметров, с тэгами сложнее - нужно передать параметр tag равный номеру тэга.
Можно попробовать использовать такое правило:
Код:RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^tag_([0-9]+).html /netcat/require/e404.php?REQUEST_URI=/tags/&tag=$1 [L,QSA]
Но глобальной переменной $tag нет, ее надо получать так:
$_GET['tag'] ( netcat сам заполняет этот массив )
То есть в системных настройках компонента с тэгами прописать $tag = $_GET['tag'];
|
|
|
22.02.2011, 15:19
|
|
Denis
Зарегистрирован: 2008-07-15
Сообщений: 666
|
Пример в профайлами рабочий, кстати, может у вас mod_rewite нет, или нет нуда пишите или настоящий адрес до пользователя не такой /profile/profile_x.html
|
|
|
24.02.2011, 15:17
|
|
iprus
Зарегистрирован: 2008-10-07
Сообщений: 73
|
Цитата:Пример в профайлами рабочий, кстати, может у вас mod_rewite нет, или нет нуда пишите или настоящий адрес до пользователя не такой /profile/profile_x.html
mod_rewite есть, на других-то рядом самописных сайтах он работает.
У меня до пользователей адреса /users/user_x.html Это я просто раздел создал users (ключевое слово) с компонентом user (ключевое слово) и получились такие адреса, ничего в htaccess дополнительно не писал.
По вашему примеру я наверное не понял зачем он, для чего и как им пользоваться.
Вы просто и конкретно пожалуйста ответьте как в NetCat средствами хотя бы htaccess (mod_rewite) сделать из такого урла: /tags/tag=x такой: /tags/tag_x.html (без редиректа) и вопрос навсегда будет исчерпан
Или это абсолютно никак невозможно не переписывая e404.php?
|
|
|
24.02.2011, 16:37
|
|
Denis
Зарегистрирован: 2008-07-15
Сообщений: 666
|
Цитата:
Вы просто и конкретно пожалуйста ответьте как в NetCat средствами хотя бы htaccess (mod_rewite) сделать из такого урла: /tags/tag=x такой: /tags/tag_x.html (без редиректа) и вопрос навсегда будет исчерпан
Или это абсолютно никак невозможно не переписывая e404.php?
посмотрите мой ответ в этом топике от "22.02.2011, 15:15"
|