2014-01-24 6 views
5

Я искал решение повсюду, но не смог найти точное решение, которое я ищу. Я плохо разбираюсь в материалах htaccess. Нужна помощь.htaccess обеспечить соблюдение «www», но разрешить доступ к поддоменам

У меня есть принудительный «www» в моем htaccess файле и его получение на пути, когда я пытался создать субдомен.

Я использую этот параметр, который я нашел, и до сих пор он работает отлично без субдомена.

RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 

RewriteCond %{HTTP_Host} ^(www\.)?example\.net$ [NC] 
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301] 

После создания поддомена, его addding «WWW» на передней и перенаправляют на основной сайт вместо субдомен.

For example: folder.domain.com -> becomes -> www.folder.domain.com (displayes the main site) 

Какая модификация необходима в дополнение к тому, что у меня есть в этом htaccess?

  1. Enforce "www".
  2. Также разрешите субдомен, если его не «www».
  3. плюс subdomin URL с «Нетто» и перенаправляет на «.com»

Кстати мой основной сайт находится в CodeIgniter и у меня есть это:

RewriteCond $1 !^(index\.php|js|media|style) 
RewriteRule ^(.*)$ /index.php/$1 [L] 

Требуется установить блог на подпапку и использовать ее как субдомен.

легкий путь был изменить (добавить «блог»)

RewriteCond $1 !^(index\.php|js|media|style|blog) 
RewriteRule ^(.*)$ /index.php/$1 [L] 

тогда я доступ его как www.domain.com/blog

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

Благодаря

+1

просто чтобы убедиться, что мы ясно. -.! Вы хотите, чтобы 'folder.domain.com' проходил через unmolested, но' domain.com' должен стать 'www.domain.com'. Может быть, несколько примеров« это станет тем »будет полезно. Является ли« поддомен »всегда одинаковым string? Это облегчило бы жизнь. – Floris

+0

@Floris: Спасибо за быстрый ответ onse. Да, точно. Мой главный сайт находится в кодерикторе, и теперь я хотел установить блог в подпапку и использовать его в качестве поддомена «blog.mainsite.com» ... так что да, в моем случае субдомен является фиксированной строкой. – Laraveldeep

+0

Итак, вы хотите, чтобы 'folder.domain.com' не стал' www.folder.domain.com'? – anubhava

ответ

2

Есть свои правила, как это:

RewriteCond %{HTTP_HOST} ^mainsite\.com$ [NC] 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 

RewriteCond %{HTTP_Host} ^(.+?)\.net$ [NC] 
RewriteRule ^(.*)$ http://%1.com/$1 [L,R=301] 
+0

Ваша модификация работала, но ее пока еще показывали основной сайт. Я предполагаю, что правила codeigniter действуют. – Laraveldeep

+0

Можете ли вы попробовать в новом браузере, чтобы избежать проблем с кешированием 301. – anubhava

+0

Я изменил правило codeigniter на «RewriteCond $ 1!^(Index \ .php | js | media | style) RewriteRule^(блог. *) $ /index.php/$1 [L]" вместе с вашим решением и его теперь работает отлично. «blog.mainsite.com» отлично работает. Просто не знаю, как перенаправить субдомены с «.net» на «.com» тоже. – Laraveldeep

0

я понял, решение. Может быть полезно и для других.

Я модифицирована

RewriteCond %{HTTP_HOST} !^www\. 

в

RewriteCond %{HTTP_HOST} ^mainsite\.com$ [NC] 

как предложено анубхава

Затем изменил

RewriteRule ^(.*)$ /index.php/$1 [L] 

до

RewriteRule ^(blog.*)$ /index.php/$1 [L] 

Для. .net "to".ком перенаправления поддомена»Я добавил

RewriteCond %{HTTP_Host} ^(blog\.)?mainsite\.net$ [NC] 
RewriteRule ^(.*)$ http://blog.mainsite.com/$1 [L,R=301] 

и добавил припаркованный домен в моем хозяине

Все прекрасно работает в настоящее время

Благодаря

Смежные вопросы