Я ненавижу задавать вопросы о mod_rewrite, но я не могу заставить эти правила работать правильно. Я его настроил и разобрался однажды, но прошло несколько лет, и теперь он просто не играет хорошо, и мои знания в области mod_rewrite вернулись к угу ...
По сути, я хочу заставить www на главном домене example.com. (или принудительное отсутствие www было бы еще лучше, но я не смог удаленно заставить это работать должным образом вместе с динамическими поддоменами).
Если существуют правила my.example.com, следуйте им соответствующим образом
Для чего-либо еще, например: * .example.com, перейдите к другому файлу для анализа.
Правила, которые у меня есть в настоящее время, обрабатывают форсирование www и правильно обрабатывают динамический поддомен, но полностью игнорируют правила my.example.com, обрабатывая его как подстановочный поддомен. Кажется, я могу заставить любое из моих правил работать должным образом, но, пытаясь заставить их работать вместе, это просто ублюдок. Если кто-то знает, как это сделать правильно, это было бы очень признательно.
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
# force www on main, force no www would be better.
RewriteCond %{HTTP_HOST} !^(.*)\.example.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
# my.example.com defined subdomain
RewriteCond %{HTTP_HOST} !^my\.example\.com$ [NC]
RewriteRule ^.*$ - [S=3]
RewriteRule ^$ /mydirectory/index.php [L]
RewriteRule ^category/([^/]+)/?$ /mydirectory/index.php?category=$1 [L]
RewriteRule ^submit/?$ /mydirectory/process.php [L]
# *.example.com
RewriteCond %{HTTP_HOST} ^(.*)\.com$ [NC]
RewriteCond %1 !^(www)\.examples$ [NC]
RewriteRule ^([^/]+)/?$ /subdomainparse/index.php?subdomain=%1&fakedirectory=$1 [L]