Sergeich |
|
---|---|
Траст, могу предложить сделать как в вордпрессе - там по умолчанию предлагают юзерам использовать несколько готовых вариантов краивых ссылок, нажал кнопку - сайт работает на новых ссылках. Жалко выкидывать такой навороченный инструмент. Всё что нужно - это внести в дефолтную поставку пару вариантов готовых красивых урлов (можно даже отдельным плагином), а остальное пусть работает как работает, кому надо смогут заморочить что угодно, а такие ламеры как я нажмут кнопочку и получат результат :).
Кстати. пытаюсь на реальный хостинг (мастерхост) поставить кота с киллеровским модреврайтом, после выполнения всех действий по установке выдаётся 500 ошибка, а в логе сервера пишет [Wed Apr 7 14:05:12 2010] [alert] [client 62.140.ххх.ххх] /home/u0000/site.com/www/.htaccess: RewriteRule: cannot compile regular expression '^([^/&?#]+)/([a-zA-Z0-9-_]+)/$'\nэто что ему не нравится? |
Killer |
|
---|---|
Не знаю в чем проблема, у меня работает. Может опция mod rewrite не включена на хостинге? Тогда бы косяк шел бы с первой строки.
Лишь утратив всё до конца, мы обретаем свободу...
|
Spy |
|
---|---|
Нет, лишать возможности поиграться с мод-реврайтом не надо. Бывает переносишь сайт какой-то на котонти и хочется сделать, чтобы хотя бы часть страниц была по прежним адресам. Кроме того бывает, что стандартные наборы урлов попадают в "немилость" у ПС.
Ещё волнует вопрос, нужно реализовать урлы на русском языке, реально ли? Сейчас у меня на одном из сайтов стоит цмс, где это реализовано. Добавлено 5 дней спустя: урл страницы: http://www.cotonti.com/news/community/1 http://www.cotonti.com/news/fucking-shit/1 http://www.cotonti.com/downloads/piece/of/shit/1 это плохо |
|
Bu gönderi Spy tarafından düzenlendi (2010-04-14 22:26, 15 yıllar önce) |
Dayver |
|
---|---|
Весь топик не осилил но походу ни в варианте Киллера ни в мануале cotonti.com/docs/en/admin/url_modification нет правил для плуга тегов ... хочу поделится своим решением если кому пригодится
1. в urltrans.dat plug e=tags&a=* {tags_url()} 2. в functions.custom.php function tags_url(&$args, &$spec) { $url = $args['e'].'/'.$args['a'].'/'.urlencode($args['t']); unset($args['e']); unset($args['a']); unset($args['t']); return $url; } 3. в .htaccess RewriteRule ^tags/(all|pages|forums)/([^?]+)$ plug.php?e=tags&a=$1&t=$2 [QSA,NC,NE,L] Решение работает тут crypto.net.ua. Можно и иначе реализовать но и так работает Pavlo Tkachenko aka Dayver
|
|
Bu gönderi Dayver tarafından düzenlendi (2010-05-08 01:29, 15 yıllar önce) |
Chiaroscuro |
|
---|---|
pm.php данные настройки, я так понимаю, не обрабатывают?
|
Sergeich |
|
---|---|
Фигня какая-то, уже второй хостинг пробую и снова косяки с ЧПУ, делаю простейший вариант только для страниц
Модули Параметры Формат page id=* page/{$id}.shtml page al=* page/{$al}.htmlВсё что надо и где надо прописывается, а страницы не открываются, пишет ошибку msg=950. Я уже не знаю что тут может не работать. Модреврайт точно включен, в соседней папке нормально работает ЧПУ для седитио. На локалке вроде бы работает (хотя сложный вариант как-то замороченно), на другом хостинге простой вариант ЧПУ в котонти работает, сложный нет. Я удручён. |
Killer |
|
---|---|
А такой вариант тебя не устроит, Сергеич? У меня все работает.
В urltrans.dat page * {page_url_structure()} В functions.custom.php function page_url_structure(&$args)
{
global $sed_cat, $pag, $row, $rpagecat, $c, $newpagecat;
if(stristr('docs-', $pag['page_cat']) || stristr('docs-', $row['page_cat']) || stristr('docs-', $rpagecat))
{
$page_cat = (!empty($rpagecat) && empty($page_cat)) ? $rpagecat : $page_cat;
$page_cat = (!empty($pag['page_cat']) && empty($page_cat)) ? $pag['page_cat'] : $page_cat;
$page_cat = (!empty($row['page_cat']) && empty($page_cat)) ? $row['page_cat'] : $page_cat;
//$page_cat = (!empty($args['c']) && empty($page_cat)) ? $args['c'] : $page_cat;
$page_cat = (!empty($newpagecat) && empty($page_cat)) ? $newpagecat : $page_cat;
}
else
{
$page_cat = (!empty($sed_cat[$rpagecat]['path']) && empty($page_cat)) ? $sed_cat[$rpagecat]['path'] : $page_cat;
$page_cat = (!empty($sed_cat[$pag['page_cat']]['path']) && empty($page_cat)) ? $sed_cat[$pag['page_cat']]['path'] : $page_cat;
$page_cat = (!empty($sed_cat[$row['page_cat']]['path']) && empty($page_cat)) ? $sed_cat[$row['page_cat']]['path'] : $page_cat;
//$page_cat = (!empty($sed_cat[$args['c']]['path']) && empty($page_cat)) ? $sed_cat[$args['c']]['path'] : $page_cat;
$page_cat = (!empty($sed_cat[$newpagecat]['path']) && empty($page_cat)) ? $sed_cat[$newpagecat]['path'] : $page_cat;
}
if (empty($page_cat)) $page_cat = 'articles';
if($args['id'])
{
$url = (stristr('docs-', $page_cat)) ? str_replace('-', '/', $page_cat).'/' : str_replace('.', '/', $page_cat).'/';
$url .= $args['id'];
unset($args['id']);
}
elseif($args['al'])
{
$url = (stristr('docs-', $page_cat)) ? str_replace('-', '/', $page_cat).'/' : str_replace('.', '/', $page_cat).'/';
$url .= urlencode($args['al']);
unset($args['al']);
}
elseif($args['m'] == 'add')
{
$args['c'] = (!empty($args['c'])) ? $args['c'] : $c;
$url = (stristr('docs-', $args['c'])) ? str_replace('-', '/', $args['c']).'/' : str_replace('.', '/', $sed_cat[$args['c']]['path']).'/';
$url .= 'add';
unset($args['c'], $args['m']);
}
return $url;
}
Лишь утратив всё до конца, мы обретаем свободу...
|
Sergeich |
|
---|---|
А что в .htaccess писать?
Добавлено 23 Минуты спустя: Блин, запустил на котонти плагин ЧПУ от седитио, всё нормально работает. Почему же родной котовский модреврайт не желает заводиться? |
|
Bu gönderi Sergeich tarafından düzenlendi (2010-07-18 22:17, 14 yıllar önce) |
Trustmaster |
|
---|---|
950 ошибка странная, возникает обычно при отправке формы. А в .htaccess что?
May the Source be with you!
|
Killer |
|
---|---|
сорри, забыл написать.
.htaccess RewriteRule ^([^/&?#]+)/([0-9]+)$ page.php?id=$2 [QSA,NC,NE,L] RewriteRule ^([^/&?#]+)/([a-z-]+)/([0-9]+)$ page.php?id=$3 [QSA,NC,NE,L] RewriteRule ^([^/&?#]+)/([a-z-]+)/([a-z-]+)/([a0-9]+)$ page.php?id=$4 [QSA,NC,NE,L] RewriteRule ^([^/&?#]+)/([a-zA-Z0-9-_]+)$ page.php?al=$2 [QSA,NC,NE,L] RewriteRule ^([^/&?#]+)/([a-z-]+)/([a-zA-Z0-9-_]+)$ page.php?al=$3 [QSA,NC,NE,L] RewriteRule ^([^/&?#]+)/([a-z-]+)/([a-z-]+)/([a-zA-Z0-9-_]+)$ page.php?al=$4 [QSA,NC,NE,L] Лишь утратив всё до конца, мы обретаем свободу...
|
Sergeich |
|
---|---|
# Trustmaster : 950 ошибка странная, возникает обычно при отправке формы. А в .htaccess что?Траст, всё создаётся стандартными средствами движка, на голом движке 069 вообще без модификаций, по инструкции с этого сайта http://www.cotonti.com/docs/en/admin/url_modification. Вот что в urltrans.dat page al=* {$_area}/{$al} page id=* {$_area}/{$id} * * {$_area}.phpв .htaccess # Rewrite engine options Options FollowSymLinks -Indexes RewriteEngine On # Server-relative path to seditio: RewriteBase "/" RewriteRule ^(datas|images|js|skins)/(.*)$ $1/$2 [QSA,NC,NE,L] RewriteRule ^page/([^/&?#]+)(.*)$ page.php?al=$1$2 [QSA,NC,NE,L] RewriteRule ^page/([^/&?#]+)(.*)$ page.php?id=$1$2 [QSA,NC,NE,L]при таком варианте страницы с алиасом открываются нормально, страницы с ID - ошибка 950. Редактирование работает нормально, но при создании страницы (после нажатия кнопки отправить)- ошибка 950, при этом страница создаётся. Киллер, попробовал твой вариант, страницы открываются, но при попытке создать новую страницу (при нажатии на ссылку "создать страницу")- ошибка 950, редактирование работает нормально. если что, хостер http://www.komtet.ru/, phpinfo - http://cotonti.pereslavl.me/info.php |
Trustmaster |
|
---|---|
при таком варианте страницы с алиасом открываются нормально, страницы с ID - ошибка 950.Если посмотреть на правила .htaccess, то сразу понятно почему - правила одинаковые и он перебрасывает страницы с id на таковые с алиасом, например page.php?al=123 вместо page.php?id=123. Тут встроенный редактор не справился, потому что он не знает об ограничениях типов данных в атрибутах, так что придётся подправить вручную: # Rewrite engine options Options FollowSymLinks -Indexes RewriteEngine On # Server-relative path to seditio: RewriteBase "/" RewriteRule ^(datas|images|js|skins)/(.*)$ $1/$2 [QSA,NC,NE,L] RewriteRule ^page/([0-9]+)(.*)$ page.php?id=$1$2 [QSA,NC,NE,L] RewriteRule ^page/([^/&?#]+)(.*)$ page.php?al=$1$2 [QSA,NC,NE,L]Строчка с id должна проверяться раньше, иначе жадные алиасы её съедят. May the Source be with you!
|
Sergeich |
|
---|---|
Trustmaster, предлагаю в будущих версиях убрать вебинтерфейс создания правил, но оставить urltrans.dat и .htaccess, т.к. именно их и юзает большинство для создания своих вариантов ЧПУ. При этом мы исключаем криворуких товарищей (типа меня) которые кривыми правилами ломают весь свой сайт :), но оставим профи инструмент для гибкой настройки ЧПУ. Да и меняться вариантами ЧПУ так будет удобнее. Я бы ещё подумал над functions.custom.php, чтобы реализовать в коде некий вариант, который сможет закрыть 99% потребностей вебмастеров, и переименовать этот файл в modrewrite.php :).
Добавлено 10 Минут спустя: О, кстати, Spy интересный момент отметил, как такое забороть? поисковики могут обидеться на такие чудеса умножения кол-ва страниц, да и не только поисковики. урл страницы: |
|
Bu gönderi Sergeich tarafından düzenlendi (2010-07-20 03:38, 14 yıllar önce) |
Alex300 |
|
---|---|
Да не стоит убирать Web-интерфейс. Лучше было бы сделать пресетов. Установил презет и большая часть потребностей решена. А через Web-интерфейс можно добовлять некоторые спецефические настройки.
Есть миры, не здесь, там, где небеса горят, и моря засыпают, и реки дремлют; люди сделаны из дыма, а города – из песен. Где-то опасность, где-то несправедливость, даже где-то остыл чай. Идем Эйс, у нас много работы!...
...Sorry for my english... Бесплатные расширения для Cotonti: https://lily-software.com/free-scripts/ |
Sergeich |
|
---|---|
Alex300, не получается через вебинтерфейс добавлять некоторые специфические настройки (только самые что ни на есть простые, да и тут легко запутаться пример в моём случае), всё равно придётся лезть ручками как минимум в .htaccess. Может быть и можно продолжить дорабатывать веб-интерфейс, но только как отдельный плагин, как часть дефолтной поставки он пока не годится.
|