Доступ к домену и One.com хостинг (забавная переписка поддомена)


У меня есть установка D7, которая использует доступ к домену, чтобы различать основной веб-сайт example.com и мини-сайт event.example.com. Они используют одну и ту же корневую установку документа/Drupal и одну и ту же базу данных. Я использую Путь к домену, чтобы иметь псевдонимы, относящиеся к поддоменам.

Это работало нормально, пока я не решил перенести этот веб-сайт в веб-пространство по адресу One.com . Они делают это, если вы можете создать поддомен, просто создав каталог в корневом каталоге документа. Так что /folder/ может автоматически получить доступ тремя способами:

  • http://folder.example.com/
  • http://example.com/folder/
  • http://www.example.com/folder/

По умолчанию существует A подстановочная DNS-запись для *.example.com.

Соответствующая часть моего /.htaccess в настоящее время выглядит так:

Options +FollowSymLinks

<IfModule mod_rewrite.c>
  RewriteEngine on

  #strip www.
  RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
  RewriteRule ^ http%{ENV:protossl}://%1%{REQUEST_URI} [L,R=301]

  #pass all requests that do not refer to files to index.php
  RewriteCond %{HTTP_HOST} ^(event\.)?example\.com [NC]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_URI} !=/favicon.ico
  RewriteRule ^ index.php [L]
</IfModule>

Это портит все статические файлы на event.example.com. При обращении к http://event.example.com/sites/default/files/css/css_*.css Apache пытается найти каталог /event/, который не существует, и выдает 404.

Я попытался исправить это, связав /event/ с /. Теперь статические файлы работают, но доменные пути в event.example.com больше не работают (все они дают 404 с), и ссылки, как правило, переписываются на http://event.example.com/event/somelink.

Я также попытался исправить это, добавив следующее, но это не помогло.

RewriteCond %{REQUEST_URI} ^/event(.*)$ [NC]
RewriteRule ^ http%{ENV:protossl}://event.example.com%1 [L,R=301]

Есть идеи?

Author: Bla Blaat, 2017-02-27

1 answers

Оказалось, что моя символическая ссылка с /event/ на / была правильной, но мне дополнительно нужно было указать RewriteBase /, чтобы исправить часть перезаписи ссылки.

 0
Author: Bla Blaat, 2017-02-27 18:26:43