Переписать .htaccess в подпапки для поддоменов и основного домена - PullRequest
3 голосов
/ 23 февраля 2011

В Интернете существует множество ресурсов об использовании .htaccess для перезаписи ваших поддоменов и, если необходимо, также перезаписи вашего основного домена в подпапку.Я нашел много ответов, и большинство из них точно такие же.Я утомительно тестировал эти методы и у меня во всех случаях одна и та же проблема.

Рассмотрим желаемый результат:
maindomain.com : переписать в / public_html / mainsite /
sub.maindomain.com : переписать в / public_html / sub /

Самый быстрый / чистый способ, который я рассмотрел, следующий:

RewriteEngine On

# Rewrite the main domain
RewriteCond %{HTTP_HOST} !sub.maindomain.com
RewriteCond %{REQUEST_URI} !^/mainsite
RewriteRule ^(.*)$ /mainsite/$1 [L]

# Rewrite the sub domain
RewriteCond %{HTTP_HOST} sub.maindomain.com
RewriteCond %{REQUEST_URI} !^/sub
RewriteRule ^(.*)$ /sub/$1 [L]

Это работает хорошокроме 1 раздражающего вопроса;Строка

RewriteCond %{REQUEST_URI} !^/mainsite

в основном предотвращает цикл перезаписи, но если вы переходите на maindomain.com/mainsite/, он переписывает в / public_html / mainsite / вместо / public_html / mainsite / mainsite / в надежде поднять 404не найдено.Если я удаляю эту строку, я получаю 500 ошибок сервера, когда он входит в цикл: S

Проблема в том, что любой из этих доменов нуждается в свободе создания папок и т. Д. И хотел бы убедиться, чтоабсолютная свобода в подпапках, которые создают люди: S

Пожалуйста, кто-нибудь может помочь здесь?

Ответы [ 2 ]

0 голосов
/ 25 февраля 2011

на самом деле попробуйте это, если вы все еще ищете ответ

RewriteEngine On 
# Rewrite the main domain 
RewriteCond %{HTTP_HOST} !sub.maindomain.com 
RewriteCond %{REQUEST_URI} !^/mainsite/.* 
RewriteRule ^/mainsite/(.*)$ /mainsite/$1 [L] 

# Rewrite the sub domain 
RewriteCond %{HTTP_HOST} sub.maindomain.com 
RewriteCond %{REQUEST_URI} !^/sub/.* 
RewriteRule ^/sub/(.*)$ /sub/$1 [L]`
0 голосов
/ 23 февраля 2011
RewriteEngine On

# Rewrite the main domain
RewriteCond %{HTTP_HOST} !sub.maindomain.com
RewriteCond %{REQUEST_URI} !^/mainsite/.*
RewriteRule ^(.*)$ /mainsite/$1 [L]

# Rewrite the sub domain
RewriteCond %{HTTP_HOST} sub.maindomain.com
RewriteCond %{REQUEST_URI} !^/sub/.*
RewriteRule ^(.*)$ /sub/$1 [L]

Вам нужно сделать так, чтобы он не совпадал ни с одним файлом в каталоге / mainsite, а не только с корнем (/ mainsite).Я думаю, вам нужно будет сделать то же самое с поддоменом.

...