Htaccess только один файл в подпапке и сохранение URL-адреса

Мне нужно поместить файлы в новую папку следующим образом: domain.com/newsite/newpanel/events.php

На сервере есть и другие файлы, например:

  • домен.com/events.php,
  • domain.com/oldsite/events.php и т. д.

Требование 1: Я не могу перенаправить все (потому что существуют старые реализации) с помощью общих правил, поэтому я хочу перенаправить только определенные URL-адреса. domain.com/events теперь должен пропускать старые файлы и переходить на domain.com/newsite/newpanel/events.php

Требование 2: Я пробовал что-то вроде этого

RewriteRule ^events /newsite/newpanel/events/$1 [P]

но URL-адрес на панели URL-адреса изменится. Возможно ли, чтобы он отображал domain.com/events?

Спасибо вам всем!

Ваши доменные имена выглядят одинаково в образцах (внешние и внутренние URL-адреса), но вы используете флаг [P], который, как я полагаю, предназначен для прокси-сервера. Не могли бы вы подтвердить, есть ли у вас такое же доменное имя, для которого вам нужно только перенаправить/переписать URL-адреса один раз?

RavinderSingh13 14.12.2020 17:35

да, тот же домен.

phantomhive 15.12.2020 00:38
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
2
2
96
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Обновлено: поскольку OP упомянул разные URL-адреса в разделе комментариев, поэтому добавьте решение в соответствии с этим здесь.

RewriteEngine ON
RewriteCond %{REQUEST_URI} ^/CProjects/events/?$ [NC]
RewriteRule ^(.*)$ CProjects/folderA/folderB/events [L]


Основываясь на показанных вами образцах, не могли бы вы попробовать следующее. Убедитесь, что вы очистили кеш браузера, прежде чем тестировать URL-адреса после добавления этих правил в файл .htaccess.

RewriteEngine ON
RewriteCond ^/events/?$ [NC]
RewriteRule ^(.*)$ newsite/newpanel/events.php [L]

нет, не работал. Пишет, что файл не найден.

phantomhive 15.12.2020 00:38

@phantomhive, не могли бы вы дать здесь образец ссылки, по которой вы нажимали, и она не работает, чтобы я мог проверить это дальше.

RavinderSingh13 15.12.2020 04:14

Я действительно ценю твою помощь! Хорошо, моя ссылка: localhost/CProjects/folderA/folderB/events , и я хочу, чтобы она была доступна по адресу localhost/CProjects/events. Это локальный банкомат, но он будет развернут. Большое спасибо!!

phantomhive 15.12.2020 06:19

также панель URL не должна изменять отображение, но она должна оставаться как localhost/CProjects/events.

phantomhive 15.12.2020 06:20

@phantomhive, я полагаю, это выглядит совершенно иначе, чем ваш первоначальный вопрос :) позвольте мне добавить решение для этого через минуту или около того.

RavinderSingh13 15.12.2020 06:21

@phantomhive, пожалуйста, проверьте мое решение EDIT один раз и дайте мне знать потом?

RavinderSingh13 15.12.2020 06:24

Давайте продолжим обсуждение в чате.

phantomhive 15.12.2020 08:02

@phantomhive, эй, извините, я не могу получить доступ к этой ссылке с ноутбука, не могли бы вы прокомментировать здесь, спасибо

RavinderSingh13 15.12.2020 08:04

Другие вопросы по теме