我花了很多时间寻找答案但发现没有人有同样的问题:)。
我的本地版本很好(在ampps上运行),没有index.php的网址效果很好。 我的本地和prod文件夹都在子文件夹中,所以它就像:
http://localhost/ci/
http://website.com/cms_ci/
但是,当我将我的文件夹放在prod服务器上时,主页正在运行,但如果我想要到达http://website.com/cms_ci/content/我就得到了404。 如果我继续http://website.com/cms_ci/index.php/content/,那就可以了。
以下是我的配置和htaccess文件的设置:
config.php
$config['base_url'] = 'http://localhost:8080/cms/';
$config['index_page'] = '';
$config['uri_protocol'] = 'AUTO';
$config['url_suffix'] = '';
htaccess的
Options -Indexes
RewriteEngine on
RewriteCond $1 !^(index\.php|assets/|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 [L]
当然,在我的prod配置文件中,我已经改变了
$config['base_url'] = 'http://localhost:8080/cms/';
到
$config['base_url'] = 'http://www.website.com/cms_ci/';
我尝试了所有类型的htaccess文件,但现在我有点被困了。
提前致谢
答案 0 :(得分:0)
试试这个htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php?/$1 [L]
RewriteCond %{REQUEST_URI} ^application.*
RewriteRule ^(.*)$ /index.php?/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
<IfModule !mod_rewrite.c>
ErrorDocument 404 /index.php
</IfModule>
答案 1 :(得分:0)
你可以试试这个 -
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|public|img|images|js|fonts|assets|robots\.txt|css)
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
这应该有效!