apache

Bitrix на MAMP Pro и mod_rewrite

По умолчанию почему то не заработал ЧПУ на сайте, apache не хотел читать .htaccess, заходим FIle -> Edit Template -> Apache -> httpd.conf

; у меня строка 205

<Directory />
    Options Includes
    AllowOverride All ; меняем на All
</Directory>

AllowOverride директива

Синтаксис: AllowOverride override override …
Значение по умолчанию: AllowOverride All
Контекст: каталог
Состояние: основное

Когда сервер находит .htaccess файл (как определено AccessFileName) ему необходимо знать какие директивы, объявленные в том файле могут отменять ранее утановленную информацию доступа.

Эта директива может быть установлена в None, т.е. чтобы сервер не читал файл .htaccess. Если она установленна в All — сервер будет допускать все директивы .htaccess файла. Возможны следующие одно или несколько значений:

AuthConfig — допускает использование директив разрешения (AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, require, и т.д..).

FileInfo — допускает использование директив, управляющих типами документа (AddEncoding, AddLanguage, AddType, DefaultType, ErrorDocument, LanguagePriority, и т.д..).

Indexes — допускает использование деректив управления индексацией каталога(AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName, и т.д..).

Limit — допускает использование основных директив управления доступом (allow, deny и order).

Options — допускает использование директив, управляющих специфическими особенностями каталога (Options и XBitHack).

Перенаправление на домен с www

RewriteEngine on
RewriteCond %{HTTP_HOST} !^(www\.)(([a-z0-9_-]+)\.)+\w{2,4}$
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=permanent,L]

Если кратко, то здесь условие проверяет домен на соответствие виду www.yoursite.com или www.subdomain.yoursite.com и т.д. А знак «!» говорит о том, что нам нужны домены, которые не попадают под это условие, то есть как раз yoursite.com и subdomain.yoursite.com. После чего происходит редирект на этот домен с добавлением www.

подсмотрено