Перенаправьте root / dir в root / new / dir с помощью .htaccess - PullRequest
0 голосов
/ 25 марта 2020

У меня есть хост и домен directadmin, и я создаю каталоги в хосте, и в каждом каталоге есть один индекс. html с таким URL-адресом:

example.com / sdeds

Позже я установил WordPress на хосты и свернул новые каталоги следующим образом:

example.com / 2018 / asdfa

Но мой старые каталоги находятся в root и очень небрежно. Я хочу создать новый каталог и переместить его, но не пропустите адрес, который имеют клиенты, так как адреса предоставляются клиенту в виде кода qr. Есть ли решение этой проблемы?

1 Ответ

1 голос
/ 25 марта 2020

Если вы хотите перенаправить все из root, за исключением каталога /2018/asdfa (который содержит WordPress), в новый подкаталог, то вы можете сделать что-то вроде следующего в верхней части вашего .htaccess файла:

RewriteEngine On

RewriteRule !^2018/asdfa /newdirectory%{REQUEST_URI} [R=302,L]

ОБНОВЛЕНИЕ: Что если у меня есть несколько каталогов для исключения? например: 2018, 2019, 2020

Если это просто каталоги, как вы упомянули, то было бы проще всего просто использовать чередование в регулярном выражении. Например:

RewriteRule !^20(18|19|20)/asdfa /newdirectory%{REQUEST_URI} [R=302,L]

Подшаблон (18|19|20) соответствует 18, 19 или 20.

Если вы хотите сопоставить что-либо, похожее на «недавнее» "год, то вы можете использовать более обобщенный шаблон. Например:

RewriteRule !^20[12]\d/asdfa /newdirectory%{REQUEST_URI} [R=302,L]

20[12]\d соответствует строкам (ie. Каталоги) 2010 до 2029 (включительно). [12] - это класс символов, который соответствует 1 или 2. И \d является классом сокращенных символов, который соответствует любому di git 0-9 (так же, как [0-9]).

...