2011-12-28 2 views
1

Я пытаюсь настроить файл .htacess на веб-хостинг Godaddy (apache-linux, конечно, не IIS). Но i`m застрял с проблемой:godaddy .htaccess RewriteRule

RewriteEngine On 
Options +FollowSymLinks 
Rewriterule ^templates/.*$ - [PT] 
Rewriterule ^controllers/.*$ - [PT] 
Rewriterule ^.*$ index.php [NC,L] 

I`m Получение Внутренняя ошибка сервера для линии:.

RewriteRule^* $ index.php [NC, L]

Я не знаю, как это исправить, я пробовал все, что знаю ... в основном я хочу отправить все, что приходит на index.php, где установлен загрузочный загрузчик. Это работает на любом хостинге, который я когда-либо пробовал, но у godaddy, похоже, есть проблемы с этим: ^. * $ любая помощь будет оценена.

ответ

0

Это правило

RewriteRule ^. * $ Index.php [NC, L]

выглядит нормально, но убедитесь, что нет пробелов между флагами т.е. [NC, L] должны быть изменен на [NC,L].

Вы можете попробовать эквивалент, чтобы увидеть, если это делает разницу (вам не нужен NC, потому что он уже соответствует любому запросу)

Rewriterule .* index.php [L] 

Если это не проблема, то это, скорее всего, правила до этого приводят к его провалу. Комментарий их обоих и посмотреть, если он работает, но добавить RewriteCond ниже

Options +FollowSymLinks 
RewriteEngine On 

#if its not already index.php 
RewriteCond %{REQUEST_URI} !index\.php$ [NC] 
Rewriterule .* index.php [L] 

Если эти правила являются реальной причиной, то я хотел бы знать, что ваши намерения с этими правилами, и они могут быть выражены другим способом, то есть, если целью было переписать весь контент, за исключением того, что в каталоге шаблонов или контроллеров, то это может быть достигнуто на

#if request is not for templates or controllers directory 
RewriteCond %{REQUEST_URI} !^/(templates|controllers)/ [NC] 
Rewriterule .* index.php [L]