Вопрос про мод реврайт

435
.
Помогите разобраться. Кучу материала перелопатил но так и не выходит.
Есть к примеру папка меню в ней файл тест.пнп
Т.е. menu/test.php если в этой папке я настраиваю htaccess и могу получить другое имя к примеру test.html и тогда страница будет доступна по адресу menu/test.html

Но не могу понять как избавится от адреса папки, т.е. Чтоб страница была доступна по адресу site.ru/test.html может htaccess нужно редактировать в корне сайта, и как?
.
(\/)____o_O____(\/)
erricss, В корне. Тогда на весь сайт правила
.
Koenig, Если не сложно, подскажите что писать.
.
Hey guys! Finally I'm gonna change status!?
erricss, В корень пожалуй никак без проблем не перенаправишь, если уж такая необходимость, делай роутинг для этой папки, обрабатывай ссылки, и отдавай скриптом нужный урл.
Из подпапки в папку на уровень выше можно через редирект 301 попробовать, один сайт дизенфицировал, папок до хрена в корне валялось, сгреб в кучу, а потом перенаправил, что бы юзеры не заметили))
URL /папки/ будет искать файлы в /pages/папки/
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^pages/(.*)/(.*)$ http://%{HTTP_HOST}/$1/$2 [R=301,L]
RewriteRule ^(.*)/(.*)$ /pages/$1/$2 [L]
</IfModule>
<FilesMatch "\.(js|css|htc|png|gif|jpe?g|ico)$">
    RewriteEngine Off
</FilesMatch>

Да и почитай когда надо, а когда вредно перенаправлениями баловаться
Тынц Урл
.
# kantry (09.02.2018 / 13:07)
erricss, В корень пожалуй никак без проблем не перенаправишь, если уж такая необходимость, делай роутинг для этой папки, обрабатывай ссылки, и отдавай скриптом нужный урл.
Из подпапки в папку на уро
Спасибо. А если просто подменить папку без роутера, так можно? Недосуге доп нагрузки делать. К примеру site.ru/menu/test.php чтоб открывалась по адресу site.ru/faily/test.html
.
Hey guys! Finally I'm gonna change status!?
erricss, Что бы просто подменить, измени код что я выше написал,
RewriteRule ^menu/(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]
RewriteRule ^(.*)$ /files/$1 [L]
Ну и там наверно придется в каких то папках RewriteBase / указать.
.
# kantry (09.02.2018 / 16:10)
erricss, Что бы просто подменить, измени код что я выше написал,
RewriteRule ^menu/(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]
RewriteRule ^(.*)$ /files/$1 [L]
Ну и там наверно придется в каких то пап
Спасибо буду пробовать.
.
kantry
Hey guys! Finally I'm gonna change status!?
erricss, Да кстати, а с чего ты взял что реврайт не жрет ресурсы? Еще и как жрет, особенно вот подобные редиректы)))
Тут 2 редиректа идет, сначала он один адрес скидывает в папку(в твоем случае несуществующую) потом ищет есть ли в реальной папке запрошеный файл, и только тогда его отдает по запрошеному адресу))
.
erricss
# kantry (09.02.2018 / 16:14)
erricss, Да кстати, а с чего ты взял что реврайт не жрет ресурсы? Еще и как жрет, особенно вот подобные редиректы)))
Тут 2 редиректа идет, сначала он один адрес скидывает в папку(в твоем случае несу
я знаю про нагрузку, но не хочу мудрить с роутером. Мне нужно всего два файла перенаправить.
Всего: 9