2012-09-10 4 views
0

Я хочу использовать правило перезаписи в .htaccess, чтобы переписать доступ из поддомена (michigan.sitename.com) к URL-адресу в этом случае, http://sitename.org/content/michigan-21st-century-community-learning-centers.Как переписать поддомен к URL-адресу

Сайт основан на Drupal.

Это то, что у меня есть до сих пор, первые несколько строк взяты из Drupal, все после того, как линия от меня.

Я получаю ошибку 404 пробуя поддомен

RewriteEngine on 
    # Rewrite URLs of the form 'x' to the form 'index.php?q=x'. 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_URI} !=/favicon.ico 
    RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] 

    # New information for Michigan sub domain 
    RewriteCond %{HTTP_HOST} . 
    RewriteCond %{HTTP_HOST} !^michigan.sitename\.com 
    RewriteRule (.*) http://www.sitename.com/$1 [R=301, L] 

Любые советы будут полезны

ответ

0

Изменение правила из:

RewriteCond %{HTTP_HOST} . 
RewriteCond %{HTTP_HOST} !^michigan.sitename\.com 
RewriteRule (.*) http://www.sitename.com/$1 [R=301, L] 

To:

RewriteCond %{HTTP_HOST} . 
RewriteCond %{HTTP_HOST} ^michigan\.sitename\.com 
RewriteRule (.*) http://www.sitename.com/content/michigan-21st-century-community-learning-centers [R=301,L] 

У вас есть пространство в корме er R=301,, который не будет переписывать mod rewrite, он предположит, что есть еще один параметр и puke. Также вы хотите удалить !, потому что вы хотите, чтобы соответствовал субдомен michigan. URI также будет проигнорирован, то есть, если вы идете:

http://michigan.sitename.com/ 
http://michigan.sitename.com/foo/bar 
http://michigan.sitename.com/blah.html 

будет все попадают на:

http://sitename.org/content/michigan-21st-century-community-learning-centers 

Вы также хотите поменять Rewrite URLs of the form 'x' to the form 'index.php?q=x'. правила с New information for Michigan sub domain так, что Мичиган сначала происходит перенаправление, иначе запрос будет перенаправлен через index.php. Или, вы можете добавить дополнительное условие в правило index.php:

RewriteCond %{HTTP_HOST} !^michigan\.sitename\.com 
+0

Это все еще дает мне ошибка 404. –

0

Вы должны поместить Мичиганское правило первым (для остальных см ответа Йона линя):

RewriteEngine on 

    # New information for Michigan sub domain 
    RewriteCond %{HTTP_HOST} ^michigan\.sitename\.com 
    RewriteRule . http://www.sitename.com/content/michigan-21st-century-community-learning-centers [R=301,L] 

    # Rewrite URLs of the form 'x' to the form 'index.php?q=x'. 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_URI} !=/favicon.ico 
    RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] 
Смежные вопросы