我在我的网站的子文件夹中开发了一个应用程序,它工作正常。
<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]
现在我开始收到内部服务器错误500.我不确定这是我做过的事情,或者.htacces需要以不同方式配置。它也可能是主机的问题,但我想先耗尽我的选择。
任何帮助将不胜感激。提前谢谢。
答案 0 :(得分:1)
如果您在托管的根目录中只需要
<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]