Подстановочный знак apache mod_rewrite - PullRequest
0 голосов
/ 23 апреля 2011

Я пытаюсь написать mod_rewrite для работы, как это

  • domain.com => index.php
  • anything.anotherdomain.com => index.php/anything
  • foo.blabla.com => index.php/foo
  • wildcard.maybeanother.com/bar/bla => index.php/wildcard/bar/bla

Вот конфиг, который у меня есть, но apache просто выдает ошибку 500.

<IfModule mod_rewrite.c>
    RewriteEngine on

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{HTTP_HOST} ^*\.*
    RewriteRule ^(*\.*)$ index.php/$1/$2 [L]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php/$1 [L]

</IfModule>

Кто-нибудь понял, что с этим не так? : -)

Заранее спасибо!

1 Ответ

1 голос
/ 23 апреля 2011

Попробуйте:

RewriteEngine on

RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+\.[^.]+$
RewriteRule ^$ index.php [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+\.[^.]+$
RewriteRule ^(.*)$ index.php/$1 [L]  

RewriteCond %{HTTP_HOST} ^([^.]+)\.[^.]+\.[^.]+\.[^.]+$
RewriteRule ^$ index.php/%1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{HTTP_HOST} ^([^.]+)\.[^.]+\.[^.]+\.[^.]+$
RewriteRule ^(.*)$ index.php/%1/$1 [L]
...