.htaccess убрать папку из пути

Правила раздела: faq.php?mode=okay
Модератор: Модераторы

Ivan2018 M
Ivan2018 M
Возраст: 41
Репутация: 0
Сообщения: 40
Зарегистрирован: 12.02.2018
С нами: 1 год 9 месяцев

Сообщение #1 Ivan2018 » 05.11.2019, 17:01

Пробую убрать папку из пути, так:

Код: Выделить всё

RewriteRule ^pages\/(.+)$ https://sait.ru/$1 [R=301,L]


выходит на ошибку 404, как верно написать?

zyxer M
zyxer M
Возраст: 28
Репутация: 27
Сообщения: 152
Зарегистрирован: 03.02.2016
С нами: 3 года 9 месяцев
Откуда: Днепр

Сообщение #2 zyxer » 06.11.2019, 08:33

вот такой код:

Код: Выделить всё

RewriteRule ^pages/(.+)$ /$1 [R=301,L]
редиректит с /pages/oplata на /oplata
Настоятельно рекомендую во время экспериментов с редиректами в .htaccess делать их 302, т.к. 301 кешируется (что возможно у вас и случилось), и это не возможно дебажить.

Ivan2018 M
Ivan2018 M
Возраст: 41
Репутация: 0
Сообщения: 40
Зарегистрирован: 12.02.2018
С нами: 1 год 9 месяцев

Сообщение #3 Ivan2018 » 06.11.2019, 08:55

Так и написал сейчас:

Код: Выделить всё

RewriteRule ^pages/(.+)$ /$1 [R=301,L]


Мне нужно со страницы /pages/pages.php на /pages.php (php страницы сделал сам в папке pages)

Однако, пишет в адресной строке (верно!!!)

Код: Выделить всё

https://sait.ru/pages.php
, а на страницу попадаем "Страница не найдена 404"

может быть кроме этой 1 строки еще, что-то нужно писать?

zyxer M
zyxer M
Возраст: 28
Репутация: 27
Сообщения: 152
Зарегистрирован: 03.02.2016
С нами: 3 года 9 месяцев
Откуда: Днепр

Сообщение #4 zyxer » 06.11.2019, 09:01

я правильно понял что если просто зайти на https://sait.ru/pages.php, вы получаете 404? Еще я предполагаю что у вас есть директория pages/ в которой лежат файлы php, но вы хотите чтобы они отображались как будто в корне лежат?

Ivan2018 M
Ivan2018 M
Возраст: 41
Репутация: 0
Сообщения: 40
Зарегистрирован: 12.02.2018
С нами: 1 год 9 месяцев

Сообщение #5 Ivan2018 » 06.11.2019, 09:31

zyxer писал(а):то если просто зайти на https://sait.ru/pages.php, вы получаете 404? Еще я предполагаю что у вас есть директория pages/ в которой лежат файлы php, но вы хотите чтобы они отображались как будто в корне лежат?

да, все верно думаете!!! Мне нужно, чтоб словно в корне лежат страницы, а не в папке.

zyxer M
zyxer M
Возраст: 28
Репутация: 27
Сообщения: 152
Зарегистрирован: 03.02.2016
С нами: 3 года 9 месяцев
Откуда: Днепр

Сообщение #6 zyxer » 06.11.2019, 11:13

Разве что для каждого файла прописывать

Код: Выделить всё

RewriteRule page.php pages/page.php [L,QSA]
.
Если дадите более развёрнутое требование, что должно получиться на выходе, может быть я предложу другой вариант решения ))

Добавлено спустя 5 минут 57 секунд:
Можно что-то типа такого

Код: Выделить всё

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.+)\.php pages/$1.php [L,QSA]

но мне не сильно нравиться эта идея, и не понятно как правильно обработать несуществующий файл

Ivan2018 M
Ivan2018 M
Возраст: 41
Репутация: 0
Сообщения: 40
Зарегистрирован: 12.02.2018
С нами: 1 год 9 месяцев

Сообщение #7 Ivan2018 » 07.11.2019, 05:40

Оба кода проверял не работают.
Задача стоит простая прямые ссылки, чтоб открывались без папки и все.
Несуществующий файл можно не обрабатывать и не думать про это, пока не решена первая задача.

zyxer M
zyxer M
Возраст: 28
Репутация: 27
Сообщения: 152
Зарегистрирован: 03.02.2016
С нами: 3 года 9 месяцев
Откуда: Днепр

Сообщение #8 zyxer » 07.11.2019, 08:54

Странно, у меня работают. Их нужно добавлять в файл сразу после RewriteEngine on, может еще попробуйте настроить RewriteBase, мож пути сбиваются...


Название раздела: Вопросы по работе с OkayCMS
Правила раздела: faq.php?mode=okay

Быстрый ответ


Введите код в точности так, как вы его видите. Регистр символов не имеет значения.
Код подтверждения

   

Вернуться в «Вопросы по работе с OkayCMS»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 22 гостя