Можно ли использовать .htaccess для перезаписи поддомена в каталог?
Пример:
показывает содержание
Можно ли использовать .htaccess для перезаписи поддомена в каталог?
Пример:
показывает содержание
Попробуйте поместить это в свой файл .htaccess:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^sub.domain.com
RewriteRule ^(.*)$ /subdomains/sub/$1 [L,NC,QSA]
Для более общего правила (которое работает с любым поддоменом, а не только sub
) замените последние две строки следующим:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com
RewriteRule ^(.*)$ subdomains/%1/$1 [L,NC,QSA]
http://test.domain.com
, URL-адрес перенаправит меня наhttp://test.domain.com/subdomains/test/
. Можно ли без показа/subdomains/test/
в конце?P
флаг в дополнение кL
.http://test.domain.com/subdomains/test/
, когда я хочу только показать,http://test.domain.com/
test.domain.com/subdomains/test
- может, здесь что-то еще происходит. Вы можете добавитьRewriteBase /
сразу после этогоRewriteEngine on
? Кроме того, если вы хотите, чтобы он отображался,test.domain.com
вам придется использовать mod_proxy и[P]
флаг.Я не эксперт по mod_rewrite, я часто борюсь с этим, но я сделал это на одном из своих сайтов, в зависимости от ваших обстоятельств могут потребоваться другие флаги и т.д. Я использую это:
Любые другие правила перезаписи для остальной части сайта должны быть применены позже, чтобы они не мешали перезаписи вашего поддомена.
источник
.htaccess
заходит на эту страницу (например, я), помимо создания фактического.htaccess
файла, чтобы он вступил в силу, вам необходимо установитьAllowOverride
в своихVirtualHost
настройках ( stackoverflow.com/a/22819550/1657502 ) , включитеrewrite
модуль Apache, а затем перезапустите Apache ( stackoverflow.com/a/5758551/1657502 )www.
префикс, вероятно, лучше всего поддерживается с помощью перенаправления, чем перезаписи.Вы можете использовать следующее правило в .htaccess, чтобы переписать поддомен в подпапку:
Построчное объяснение:
Строка выше говорит серверу включить механизм для перезаписи URL.
Эта строка является условием для RewriteRule, где мы сопоставляем HTTP-хост с использованием шаблона регулярного выражения. Условие говорит, что если хостом является sub.domain.com, выполните правило.
Правило соответствует http://sub.domain.com/foo и внутренне перенаправляет его на http://sub.domain.com/folder/foo .
Замените sub.domain.com своим субдоменом, а папку - именем папки, на которую вы хотите указать свой субдомен.
источник
У меня была такая же проблема, и я нашел подробное объяснение на http://www.webmasterworld.com/apache/3163397.htm
Мое решение (содержимое поддоменов должно находиться в папке с именем
sd_subdomain
:источник
Это перенаправляет в ту же папку на поддомен:
.httaccess
источник
Попробуйте поместить этот файл .htaccess в папку поддомена:
Он перенаправляет на http://domain.com/subdomains/sub/ , когда вы хотите, чтобы он отображал только http://sub.domain.com/
источник
Перенаправить каталог поддомена:
источник
Для любого запроса субдомена используйте это:
Просто сделайте какую-нибудь папку такой же, как и нужное вам субдомен. Папка должна быть EXIST как это: domain.com/sub для sub.domain.com .
источник