Страница 1 из 1

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

Добавлено: 05.11.2019, 17:01
Ivan2018
Пробую убрать папку из пути, так:

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

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


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

Добавлено: 06.11.2019, 08:33
zyxer
вот такой код:

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

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

Добавлено: 06.11.2019, 08:55
Ivan2018
Так и написал сейчас:

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

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


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

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

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

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

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

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

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

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

Добавлено: 06.11.2019, 11:13
zyxer
Разве что для каждого файла прописывать

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

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]

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

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

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