hostgator: сопоставление поддомена с подстановочным знаком - PullRequest
0 голосов
/ 09 марта 2012

Я боролся с этой проблемой на сервере общего хостинга hostgator в течение последних 3 часов. Это проблема в самом простом.

Это отображение, которое я хочу сделать: subdomain.domain.com -> www.domain.com/test.php?user=subdomain

, но по какой-то причине, когда я вхожу в "subdomain.domain.com", перенаправление не происходит, и даже URL не меняется в моем браузере. И я вижу файл test.php, перечисленный на загруженной странице (поскольку единственные файлы, которые у меня есть на сервере, это .htaccess и test.php).

Это код .htacess

     <IfModule mod_rewrite.c>
            RewriteEngine On
            RewriteBase /

            <IfModule mod_proxy.c>
                    RewriteCond %{HTTP_HOST} !^www. [NC]
                    RewriteCond %{HTTP_HOST} ^([a-z0-9]+).domain.com(.*)$ [NC]
                    RewriteRule ^(.*)$ http://www.domain.com/test.php?user=$1$2 [P,L]
            </IfModule>

            <IfModule !mod_proxy.c>
                    RewriteCond %{HTTP_HOST} !^www. [NC]
                    RewriteCond %{HTTP_HOST} ^([a-z0-9]+).domain.com(.*)$ [NC]
                    RewriteRule ^(.*)$ http://www.domain.com/test.php?user=$1$2 [R=301,L]
            </IfModule>
    </IfModule>

и это код test.php

<?php echo $_GET['user']; ?>

Кто-нибудь знает, в чем здесь проблема? поддержка не была полезна для меня. я думаю, что-то не так с конфигурацией сервера.

1 Ответ

0 голосов
/ 09 марта 2012

RewriteCond В обратных ссылках используется знак процента, а не доллара! % 1, а не $ 1.

RewriteCond %{HTTP_HOST} !^www. [NC]
RewriteCond %{HTTP_HOST} ^([a-z0-9]+).domain.com(.*)$ [NC]
                          ^ %1                  ^ %2
RewriteRule ^(.*)$ http://www.domain.com/test.php?user=$1$2 [R=301,L]
             ^$1                                       ^^^^ oops

$1 означает что-то вытянуть из регулярного выражения слева; % 1 означает извлечь его из RewriteCond. Вы можете придерживаться всего соответствия как пользовательской части, предполагая, что переписчик не задыхается от факта, что $2 - это свисающая обратная ссылка.

...