Мод ReWrite Catch-All Субдомен - PullRequest
3 голосов
/ 19 июня 2009

В основном я хочу, чтобы * .domain.com поднял domain.com/*/ (не перенаправлял).

Я зашел в раздел поддоменов cPanel и установил подстановочный знак для этого домена. Похоже, что он разрешается правильно, т.е. * .domain.com вызывает domain.com.

Я сейчас сделал htaccess файл в каталоге public_html, содержащий:

Options +FollowSymLinks
Options +Indexes
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !www.domain.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-]+).domain.com [NC]
RewriteRule (.*) %2/$1 [L]

Я получаю ошибку «500 Internal Server Error», есть идеи?

1 Ответ

0 голосов
/ 19 июня 2009

Попробуйте это правило:

RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?([a-z0-9-]+)\.example\.com$ [NC]
RewriteCond %2%{REQUEST_URI} !^([^/]+)/\2
RewriteRule (.*) %2/$1 [L]

Дополнительное RewriteCond %2%{REQUEST_URI} !^([^/]+)/\2 должно избегать бесконечных циклов, вызванных флагом L.

...