Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Как правильно сделать редирект в engine.php?

Как правильно сделать редирект в engine.php?


     04.01.2017    Все вопросы » Общие вопросы по PHP    1668

вопрос
Всем доброго времени суток!
Есть отличные статьи про улучшение DLE в 4 частях от igameer, но к сожалению на связь не выходит.
В одной из своих статей он убирает все ссылки с слэшом на без него. Было сайт.ру/собака/ стало сайт.ру/собака


Открываем /engine/engine.php находим :

header("Location: {$re_url}{$re_cat}/");

Меняем на :

header("Location: {$re_url}{$re_cat}");

Далее ищем :

if ($re_cat != $_GET['category'] OR substr ( $_SERVER['REQUEST_URI'], - 1, 1 ) != '/' ) {

Меняем на :

if ($re_cat != $_GET['category'] OR substr ( $_SERVER['REQUEST_URI'], - 1, 1 ) == '/' ) {


Статья писалась под 10.х, сейчас на 11 версии кусок кода из engine.php выглядит так:


if( $config['allow_alt_url'] AND $config['seo_control'] AND $category_id AND $view_template != "rss") {

				$re_cat = get_url( $category_id );
        
				if ($re_cat != $_GET['category'] OR substr ( $_SERVER['REQUEST_URI'], - 1, 1 ) += '/' OR $_GET['cstart'] == 1 ) {	
					$re_url = explode ( "index.php", strtolower ( $_SERVER['PHP_SELF'] ) );
					$re_url = reset ( $re_url );

					if(substr ( $_SERVER['REQUEST_URI'], - 1, 1 ) != '/' AND $_GET['cstart'] AND $_GET['cstart'] != 1 ) {
					 $re_cat .= "/page/".intval($_GET['cstart']);
					} 
					header("HTTP/1.0 301 Moved Permanently");
					header("Location: {$re_url}{$re_cat}");
					die("Redirect");
				}
			}


Добавилось пару строчек, и если следовать инструкции и заменить = на + то редирект на сайте происходит не правильный. При переходе на сайт.ру/собака/ должен осуществляться редирект на сайт.ру/собака



Ответил: DomiTori


В .htaccess
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} ![^\/]$
RewriteRule ^(.*)\/$ /$1 [R=301,L]

Глобальный метод редиректа со слеша на без слеша

2 комментария

Sander
PHP-developer

Sander - 5 января 2017 05:50 -

Потом включает в DLE обработку не верных URL адресов и наблюдаем коллапс ^_^

SanDev.pro - мой блог.

Telegram: @sandev
Skype: Sander8804

SCC
Юзер

SCC - 5 января 2017 12:02 -

У кого нибудь есть актуальная статья для того чтобы убрать слэши на DLE 11.2? Буду благодарен. Решение сверху не правильно отрабатывает

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх