Я пытаюсь настроить правила перезаписи для веб-сайта, но пока есть одна проблема.
На данный момент это настроено локально для тестирования.
Настройка представляет собой основную корневую папку, в которой есть несколько подпапок, а некоторые из них являются поддоменами. Субдомены уже сопоставлены в httpd.conf и работают правильно.
example.com
sub.example.com
something.example.com
...
Со следующей структурой папок:
C:/website
C:/website/css
C:/website/images
C:/website/sub (subdomain)
C:/website/something (subdomain)
Итак, файлы в папке 'website' используются example.com, а также папки, которые не отображаются в качестве поддоменов. В каждом поддомене есть определенные файлы, которые использует каждый поддомен, но они также используют некоторые общие файлы из родительского каталога (не очень важные для данной проблемы). Для основного веб-сайта (а также для поддоменов) все проходит через файл index.php (уже решенный с помощью правил перезаписи), поэтому прямой доступ к другим файлам (также не очень актуален).
Итак, моя проблема в том, что если вы обращаетесь к поддомену без «www» (sub.example.com), все в порядке. При доступе через 'www' (http://www.sub.example.com), он переходит на основной сайт.
Вот мой файл .htaccess (переписать правила):
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
RewriteRule \.(css|jpe?g|gif|png|js)$ - [L]
RewriteCond %{REQUEST_URI} ^/[^\.]+[^/]$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [R=301,L]
RewriteRule ^([^/\.]+)/?$ /index.php?cmp=$1 [L]
RewriteRule ^([^/\.]+)/([^/\.]+)/?$ /index.php?cmp=$1&page=$2 [L]
RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)/?$ /index.php?cmp=$1&subsection=$2&page=$3 [L]
Важно отметить: почти такая же концепция для основного контроллера (index.php) была бы для поддоменов, поэтому большинство этих правил будет в файле .htaccess поддоменов.
Любая помощь приветствуется.