CMS Eleanor - Поиск
Полная версия этой страницы: Официальный форум Eleanor CMS » Изменение вида ссылки.
Официальный форум Eleanor CMS » Поддержка пользователей системы Eleanor CMS » Другое
ZyXEL
Собственно есть у меня ссылки вида: index.php?module=test&s={$s}, нужно сделать ЧПУ для данной ссылки вида: test-server-{$s}.html

На АС подобный вопрос решал в .htaccess:

RewriteRule ^test-server-([0-9]*).html index.php?name=test&s=$1
RewriteRule ^test.html index.php?name=test

В EL подобный метод не помог, и на страницах /test-server-{$s}.html движок выдаёт ошибку 404 Страница не найдена.

Помогоите, как сделать, чтобы страницы доступные по адресу: index.php?module=test&s={$s} были также доступны на test-server-{$s}.html
Alexander
Пусть ваш модуль генерирует уже готовое ЧПУ. А в .htaccess никто не мешает написать тот же код, только вместо name= напишите module=
ZyXEL
Забил в .haccess:
RewriteRule ^test-server-([0-9]*).html index.php?module=test&s=$1
RewriteRule ^test.html index.php?module=test

Движок при переходе по ссылке: /test-server-1.html выдаёт 404 ошибку.
Попробовал такую вариацию:
RewriteRule ^test-server-{$s}.html index.php?module=test&s={$s}

Тоже не помогло.

В файле скрипта ссылки генерируются след. образом:

case "eleanor":
$link = $s ? "index.php?module=test&s={$s}" : "index.php?module=test";
break;

При попытке ввести:

case "eleanor":
$link = $s ? "test-server-{$s}.html" : "test.html";
break;

Тоже 404 ошибка.
Alexander
ZyXEL, попробуйте забить вот таким образом:

RewriteRule ^test\-server\-([0-9]+)\.html index.php?module=test&s=$1
RewriteRule ^test\.html index.php?module=test
ZyXEL
Ввел, то что Вы выше написали, результат тот же.

http://cyberathlete.ru/test.html - вот сам модуль.

Как я уже писал скрипт обрабатывает ссылки так:
case "eleanor":
$link = $s ? "index.php?module=test&s={$s}" : "index.php?module=test";
break;


И при переходе по ссылке: http://cyberathlete.ru/index.php?module=test&s=1 все работает.

Но вот при попытке открыть адрес /test-server-1.html снова ошибка 404.

Раньше скрипт обрабатывал ссылки так:
    elseif ($lgsl_config['cms'] == "phpnuke")
    {
      if (is_numeric($s))
      {
        $link = "monitoring-server-{$s}.html";
      }
      else
      {
        $link = "monitoring.html";
      }
    }


В .htaccess были следующие строки:
RewriteRule ^monitoring-server-([0-9]*).html                        index.php?name=monitoring&s=$1
RewriteRule ^monitoring.html                                        index.php?name=monitoring


И все работало ( стояло это все под AS 4.2 ).
Alexander
ZyXEL, думаю, вам нужно показать полностью .htaccess файл, чтобы смогли вам помочь. Я же сейчас все проверил. Вам необходимо вставить после RewriteEngine on одну строку:
RewriteRule ^test\-server\-([0-9]+)\.html index.php?module=test&s=$1 [L]
ZyXEL
Alexander, спасибо большое за помощь. Я вставлял данную строку в конец файла, как только вставил сразу после строки RewriteEngine on все заработало.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.