3 февр. 2014 г., 17:47

Дубли страниц из-за слеша на конце ЧПУ URL

Приветствую всех. Недавно столкнулся с проблемой, передо мной стояла задача сделать 301-й редирект с несуществующего слеша (убрал в CMS) на конце URL, чтобы не пропадали внешние ссылки. Я привык решать проблемы самостоятельно, обычно нахожу решение в интернет, Но эта проблема мне оказалась не по плечу. Проблема заключается в том, что когда делаешь редирект, админка становится недоступной. Самое интересное, что я нашел в интернет: # Remove trailing slash RewriteRule ^(manager)/*$ — [L] # exclude manager folder RewriteCond %{REQUEST_URI} (.*)/ RewriteRule ^(.*)/$ example.com/$1 [R=301,L] Но это у меня не работает! Пробовал переименовывать папку manager, тоже не помогло. Прошу Вас участники клуба помочь в решении этой проблемы, уверен, что не у одного меня она есть.
Попробуйте в директории /manager/ найти файл ht.access и переименовать его в .htaccess В этом файле написано «RewriteEngine Off» и по идее это должно отключить рерайты для данной папки.
Ну и пропишите rel=«canonical» на всех страницах, чтобы склеились быстрее.
А вообще если сайт рабочий и приносит деньги, я бы не особо заморачивался со структурой URL. Это все таки потребует склейку страниц и перенос авторитета на новые. Некоторые страницы могут выпасть из выдачи.
Спасибо, в другом месте нашел простое решение — как мне нравится)), наблюдайте, оно вам точно пригодится! Плагин на событие onHandleRequiest: <?php if ($modx->context->key == 'mgr') {return;} if (substr($_SERVER['REQUEST_URI'], -1) == '/' && $_SERVER['REQUEST_URI'] != '/') { $url = $modx->getOption('site_url'); $url .= substr($_SERVER['REQUEST_URI'], 0, -1); $modx->sendRedirect($url,array( 'responseCode' => 'HTTP/1.1 301 Moved Permanently')); }

Добавить комментарий