Я разработал приложение в подпапке своего веб-сайта, и он работал нормально.
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond $1 !^(index\.php|images|swf|uploads|js|css|robots\.txt) RewriteRule ^(.*)$ /app/index.php/$1 [L] </IfModule>
Этот файл работал нормально, поэтому index.php не требуется для навигации внутри приложения. Теперь я переместил приложение на корневой сайт и изменил последнюю строку на
RewriteRule ^(.*)$ index.php/$1 [L]
Теперь я начал получать Internal Server Error 500. Я не уверен, что это то, что я сделал, или нужно настроить параметры .htacces по-другому. Это может быть проблемой и для хоста, но я хочу сначала изложить свои варианты.
Любая помощь будет оценена. Заранее спасибо.
если вы в корне хостинга, вам просто нужно
<IfModule mod_rewrite.c> RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond $1 !^(index\.php|images|swf|uploads|js|css|robots\.txt) RewriteRule ^(.*)$ /index.php/$1 [L] </IfModule>
если вы находитесь в папке /foo
вам нужно:
<IfModule mod_rewrite.c> RewriteEngine on RewriteBase /foo RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond $1 !^(index\.php|images|swf|uploads|js|css|robots\.txt) RewriteRule ^(.*)$ /foo/index.php/$1 [L] </IfModule>
если все еще не работает, попробуйте это, для меня это работает повсюду:
RewriteEngine On RewriteBase /foo RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /foo/index.php/$1 [L]