.htaccess: добавить www и направить в подпапку - PullRequest
2 голосов
/ 11 мая 2011

Я пытаюсь написать скрипт htaccess, который автоматически добавляет www и извлекает содержимое из подпапки.

Вот скрипт, который я использую для извлечения из подкаталога.

RewriteEngine On
RewriteBase /

# pointing for the domain abc.com to folder abc
ReWriteCond %{HTTP_HOST} abc.com
ReWriteCond %{REQUEST_URI} !abc/
ReWriteRule ^(.*)$ abc/$1 [L]  

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

Ответы [ 2 ]

2 голосов
/ 12 мая 2011

Как-то так должно работать.

<IfModule mod_rewrite.c>
#Turn on rewriting
RewriteEngine on
# Rewrite the non www. version
RewriteCond %{HTTP_HOST} !^www.abc.com$
RewriteRule ^(.*)$ http://www.abc.com/abc [L]
# Rewrite the www. version
RewriteCond %{HTTP_HOST} ^www.abc.com$
RewriteRule ^(.*)$ http://www.abc.com/abc [L]
</IfModule>
0 голосов
/ 12 мая 2011

Как-то так должно работать:

RewriteEngine On
RewriteBase /

# Rewrite to include www
RewriteCond %{HTTP_HOST} ^abc\.com [NC]
RewriteRule ^(.*)$ http://www.abc.com/ [L,R=301]

# Rewrite for the domain abc.com to folder abc
ReWriteCond %{HTTP_HOST} ^www\.abc\.com [NC]
ReWriteCond %{REQUEST_URI} !abc/ [NC]
ReWriteRule ^(.*)$ abc/$1 [L]

Мне нравится избегать любого экземпляра.в URL, потому что в регулярном выражении точка будет соответствовать чему угодно, и обычно я добавляю флаг no case [NC] свободно.Первое правило должно перенаправлять, чтобы включить www, а второе правило должно направлять все другие пути к пути abc.

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