2009-06-19 3 views
3

В принципе я хочу * .domain.com вытащить domain.com/*/ (не перенаправить).Mod ReWrite Catch-All Subdomain

Я пошел в раздел поддоменов 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 Внутренняя ошибка сервера», любые идеи?

+0

Я не прихожу к закрытию, но вы можете получить лучший ответ на этот вопрос на serverfault.com –

+0

Любая соответствующая информация в журнале ошибок? –

ответ

0

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

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 флага.