Доступ к домену и 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]
Есть идеи?
1 answers
Оказалось, что моя символическая ссылка с /event/
на /
была правильной, но мне дополнительно нужно было указать RewriteBase /
, чтобы исправить часть перезаписи ссылки.