2012-03-26 2 views
0

У меня есть этот код в моем .htaccess:.htaccess идет не так с конкретным хостинг

DirectoryIndex index.php --> 
RewriteEngine on 
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|favicon\.ico) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA] 

Это очень хорошо работает на моем локальном хосте (MAMP) и онлайн с хостинга, как MediaTemple но с WAMP и другим хостом, как 1 и 1 это не работает!

Есть ли у вас какие-либо идеи по настройке этого для работы повсюду?

Спасибо!

+0

В некоторых случаях я обнаружил, что htaccess работает где-то, но не где-то еще, что он помогает добавить «RewriteBase», может стоить попробовать – danneth

ответ

0

Попробуйте добавить RewriteBase / и удалите ./ с вашего index.php. Если mod_rewrite недоступен, перенаправление 404 должно делать трюк, хотя я не уверен, насколько надежным будет ваше приложение, если вы его используете (никогда не использовать этот метод самостоятельно).

DirectoryIndex index.php 

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/

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

<IfModule !mod_rewrite.c> 
    ErrorDocument 404 /index.php 
</IfModule> 

Кроме того, ваш первый RewriteCond не представляется необходимым просто потому, что правила 2 и 3 позаботится о том, что он пытается достичь.