iweb 03 февраля 2014 0 2
Приветствую всех.
Недавно столкнулся с проблемой, передо мной стояла задача сделать 301-й редирект с несуществующего слеша (убрал в CMS) на конце URL, чтобы не пропадали внешние ссылки.
Я привык решать проблемы самостоятельно, обычно нахожу решение в интернет, Но эта проблема мне оказалась не по плечу.
Проблема заключается в том, что когда делаешь редирект, админка становится недоступной.
Самое интересное, что я нашел в интернет:
# Remove trailing slash
RewriteRule ^(manager)/*$ — [L] # exclude manager folder
RewriteCond %{REQUEST_URI} (.*)/
RewriteRule ^(.*)/$ example.com/$1 [R=301,L]
Но это у меня не работает!
Пробовал переименовывать папку manager, тоже не помогло.
Прошу Вас участники клуба помочь в решении этой проблемы, уверен, что не у одного меня она есть.
2 комментария
Ivan1
Ivan 04 февраля 2014г в 11:56 #
Попробуйте в директории /manager/ найти файл ht.access и переименовать его в .htaccess
В этом файле написано «RewriteEngine Off» и по идее это должно отключить рерайты для данной папки.

Ну и пропишите rel=«canonical» на всех страницах, чтобы склеились быстрее.

А вообще если сайт рабочий и приносит деньги, я бы не особо заморачивался со структурой URL. Это все таки потребует склейку страниц и перенос авторитета на новые. Некоторые страницы могут выпасть из выдачи.
i
iweb 05 февраля 2014г в 19:38 #
Спасибо, в другом месте нашел простое решение — как мне нравится)), наблюдайте, оно вам точно пригодится!
Плагин на событие 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'));
}
Авторизуйтесь или зарегистрируйтесь (можно через соцсети ), чтобы оставлять комментарии.