Нужна помощь с .htaccess и 301 редиректом

254
30 июня 2017, 08:11

Перенес сайт на новый движок, Yii2 basic. От предыдущих урл пришлось отказаться.
Пытаюсь настроить .htaccess, но ничего не помогает, настраиваю .htaccess который находится в корне сайта.
sait.ru/news/new.php?id=100 - то что было
sait.ru/news/100/ - то что необходимо
Помогите пожалуйста

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{QUERY_STRING} !htaccess=Y
RewriteCond %{QUERY_STRING} ^id=([0-9])$
RewriteRule ^news/new\.php$ /news/%1/? [R=301,L]
RewriteRule . index.php

это мой .htaccess, что я делаю не так?

Answer 1

В конфигурационном файле указанно 'showScriptName' => false ?

'components' => [
// ...
'urlManager' => [
    'class' => 'yii\web\UrlManager',
    // Hide index.php
    'showScriptName' => false,
    // Use pretty URLs
    'enablePrettyUrl' => true,
    'rules' => [
    ],
],
// ...

],

Вообще странно, что Вы решили делать все это через .htaccess. Это решается средсвами самого Yii2 Тоесть сам .htaccess должен быть прост:

RewriteEngine on
# If a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Otherwise forward it to index.php
RewriteRule . index.php

urlManager должен быть настроен как я написал выше, и указать в правилах след. строку:

'rules' => [
   'news' => 'news/index', // список всех новостей
   'news/<id:\d+>' => 'news/new', // перенаправит в action new контроллера news с id = NNN 
]
READ ALSO
Удалённое подключение к MySQL

Удалённое подключение к MySQL

Движок DLEПытаюсь подключиться с web-хостинга BlazingFast к удалённой машине на Ubuntu с базой данных MySQL с помощью такого кода в файле движка dbconfig

264
Возврат значений во время Ajax-запроса

Возврат значений во время Ajax-запроса

Уважаемые посетители, столкнулся со сложностью, нуждаюсь в Вашей помощи

248
C++, ошибка stackoverflow

C++, ошибка stackoverflow

Задание:

259