2013-06-24 19 views
1

Я работаю над проектом CakePHP на совместном хостинге с несколькими субдоменами. Из-за проблем с htaccess Cake мне пришлось переместить основной сайт в подпапку и написать новый htaccess, чтобы перенаправить пользователей в эту папку (оставляя неподдерживаемые запросы поддоменов). На минуту мой файл Htaccess выглядит примерно так:.htaccess: переписать условие и переписать проблемы

<IfModule mod_rewrite.c> 
    RewriteEngine on 

    RewriteCond %{HTTP_HOST} ^www\.domain\.com$ 
    RewriteCond %{REQUEST_URI} !^/domain/ 
    RewriteRule (.*) /domain/$1 
</IfModule> 

Это работает для запросов с «WWW» предваряется URL-адрес, но есть некоторые проблемы с HTTP: // DOMAIN.COM запросы. В IE & Chrome этот адрес разрешает URL-адрес 'www', но в Firefox & Safari отображает структуру каталогов.

Мне нужно выяснить, как включить запросы http: // domain.com в условия перезаписи, не затрагивая другие поддомены.

Любые советы были бы весьма полезными. Благодарю. Адриан

+0

Кто-нибудь? Пожалуйста, я действительно застрял здесь. Спасибо –

ответ

1

Изменить условия %{HTTP_HOST} перепишем в

<IfModule mod_rewrite.c> 
    RewriteEngine on 

    RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$ [NC] 
    RewriteCond %{REQUEST_URI} !^/domain/ [NC] 
    RewriteRule (.*) /domain/$1 [L] 
</IfModule> 
  • ? в (www\.)? говорит нулевой или один возникновение т.е. делает его необязательный.
  • [L] отмечает это как последнее, то есть переписывание должно прекратиться при этом правиле.
  • [NC] делает все матчи без учета регистра.
+0

Спасибо Рави, отлично работал –

+0

Он говорит, что я должен ждать 5 часов, чтобы наградить награду –

+0

@AdrianTrainor Не проблема. Я могу подождать. :) –

1

Попробуйте это на матч хозяина:

^(www\.)?domain\.com$