Как удалить подкаталог с URL при пересылке в sudirectory?

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

sd1.domain.com  ---> public_html/web/
sd2.domain.com  ---> public_html/web/
sd1.domain2.com ---> public_html/web/
sd2.domain2.com ---> public_html/web/

Когда пользователь просматривает эти сайты, я пересылаю эти сайты с помощью правил htaccess, таких как

RewriteCond %{HTTP_HOST}   ^sd1.(domain1|domain2).com [NC]
RewriteCond %{REQUEST_URI} !^/sd1/.*
RewriteRule   ^(.*)  sd1/$1  [L]

Теперь это перенаправляет запрос в другую папку, но потом все URL имеют sd1, прикрепленные на последней части

Вот иллюстрация

sd1.domain.com            ---> sd1.domain.com                 #Works correctly
sd1.domain.com/page1.html ---> sd1.domain.com/sd1/page1.html  # See the word sd1 on the middle

Как удалить часть папки из URL-адреса?

Ответ 1

если я правильно понял ваш вопрос, вы должны сделать это, используя флаг PT (Passthru), который заставляет цель перезаписи вернуться к механизму сопоставления URL-адресов:

RewriteCond %{HTTP_HOST}   ^sd1.(domain1|domain2).com [NC]
RewriteCond %{REQUEST_URI} !^/sd1/.*
RewriteRule   ^(.*)  sd1/$1  [PT,L]

Надеюсь, что это поможет.