Я очищаю и переставляю файлы на своем сервере (базовая ситуация с общим хостингом) и копаюсь в .htaccess, чтобы сделать это. Я перемещаю содержимое, которое у меня было в моем корневом веб-каталоге, в подкаталог / design / v5 / и пытаюсь использовать RewriteRule и RedirectMatch для работы следующих двух сценариев:
#-------------------------
#Redirect root url to subdirectory
# 1. Visits: DOMAIN.TLD/*
# Served: DOMAIN.TLD/design/v5/*
#
# 2. Visits: DOMAIN.TLD/design/v5/*
# Redirected: DOMAIN.TLD/*
#-------------------------
RewriteRule ^/(.*)$ /design/v5/$1 [L,R]
RedirectMatch 301 ^/design/v5/(.*)$ /(.*)$1
Как вы, профессионалы Apache, видите, я что-то делаю плохо, но мне трудно понять, где и как (читаю много справочных материалов по аналогичным вопросам здесь и на других сайтах на данный момент ... мы, дизайнер / фронтенд-ребята могут быть довольно плотными).
Есть еще две вещи, которые я хотел бы здесь сделать дополнительно:
На данный момент, когда я возился с базовой настройкой, я получил один из трех результатов:
Позднее ночное обновление:
Этот SO-ответ отлично работает на корневом уровне, однако не перенаправляет из подкаталога [когда я перехожу к DOMAIN.TLD / design / v5, я вместо этого получаю перенаправление на DOMAIN.TLD /(.*)] и искажает любые каталоги, не являющиеся субдоменами, для тяжелой перезаписи правило.
RewriteCond %{THE_REQUEST} ^GET\ /design/comingsoon/
RewriteRule ^design/comingsoon/(.*) /$1 [L,R=301]
RewriteRule !^design/comingsoon/ design/comingsoon%{REQUEST_URI} [L]
! не допускается в rewriterule.
RewriteCond %{THE_REQUEST} ^GET\ /design/comingsoon/
RewriteRule ^design/comingsoon/(.*) /$1 [L,R=301]
RewriteRule ^design/comingsoon/ - [L]
#rewrite to '-' doesn't do anything, but with the L flag the rule(s) below it will never be applied
RewriteRule (.*) design/comingsoon/$1 [L]