Предотвращение цикла перенаправления с поддоменами в .htaccess - PullRequest
0 голосов
/ 06 мая 2019

Я пытаюсь найти решение для

  1. foo.bar.com (необычный URL) ----> показ контента с bar.com/subdom/foo/ (серверная часть)папка)
  2. redirect (внутренняя папка) bar.com/subdom/foo/ ----> foo.bar.com (необычный URL)

Я пытаюсьчтобы субдомены обслуживали контент из другой папки, но я хочу, чтобы посетители перенаправлялись на модные URL-адреса при переходе к папке вручную.

Я подозреваю, что псевдоним может быть моим спасительным преимуществом, так как использование Rewrite создает бесконечный цикл(поскольку он служит содержимому в качестве другого каталога, а не просто подменяет его).

Этот код я использую, я выделил части, которые создают цикл для меня, хотя без них перенаправления назад нетна причудливый URL.

RewriteEngine On
Options -Indexes

# Aliases
    RewriteCond %{REQUEST_URI} !^domains/
    RewriteCond %{REQUEST_URI} !^/domains/
    RewriteCond %{HTTP_HOST} ^(www\.)?(.*)$
    RewriteCond %{DOCUMENT_ROOT}/domains/%2 -d
    RewriteRule (.*) domains/%2/$1 [DPI,L]

    RewriteCond %{REQUEST_URI} ^/domains/(.*)$                      #This is problematic
    RewriteRule ^(.*) http://%1 [R=301,NC,L]                        #This is problematic

# Subdomains
    RewriteCond %{REQUEST_URI} !^subdom/
    RewriteCond %{REQUEST_URI} !^/subdom/
    RewriteCond %{HTTP_HOST} ^(www\.)?(.*)\.([^\.]*)\.([^\.]*)$
    RewriteCond %{DOCUMENT_ROOT}/subdom/%2 -d
    RewriteRule (.*) subdom/%2/$1 [DPI,L]

    RewriteCond %{REQUEST_URI} ^/subdom/(.*)$                   #This is problematic
    RewriteRule ^(.*) http://%1.%{HTTP_HOST}/ [R=301,NC,L]      #This is problematic

#################Things below should be non-relevant####################

# www to non-www (HTTP)
    RewriteCond %{HTTPS} off
    RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
    RewriteRule ^(.*)$ http://%1/ [R=301,L]

# www to non-www (HTTPS)
    RewriteCond %{HTTPS} on
    RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
    RewriteRule ^(.*)$ https://%1/ [R=301,L]

# HTTP to HTTPS
#   RewriteCond %{HTTPS} on
#   RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,QSA,L]

# HTTP to HTTPS
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,QSA,L]

# Error 404
    ErrorDocument 404 http://%{HTTP_HOST}?Error404

# Favicon
    RewriteRule ^favicon.ico favicon.ico [L]

Спасибо за любую информацию заранее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...