我有一些问题。在开发中我使用的是php 7,我的网站运行良好。但在生产中它使用PHP 5.4,我在删除index.php时遇到问题。我的网站托管在子文件夹中,就像myhost/mywebsitefolder
。
问题在于使用url功能。例如,当我访问“仪表板”页面时,它将重定向到“登录”页面,并且网址类似于myhost/mywebsitefolder/login
,并且它返回404页面未找到。当我在登录前添加index.php(myhost/mywebsitefolder/index.php/login
)它运行良好但我必须通过添加index.php来替换所有的url。有没有解决方案。我的.htaccess就是这样。
RewriteEngine on
RewriteBase /mywebsitefolder/
RewriteCond $1 !^(index.php|resources|gallery|json|slider|robots.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
答案 0 :(得分:1)
在点之前尝试使用斜杠,例如:
DirectoryIndex index.php
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /mywebsitefolder
RewriteCond $1 !^(index\.php|resources|gallery|json|slider|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
</IfModule>
<IfModule !mod_rewrite.c>
ErrorDocument 404 index.php
</IfModule>
并在 application / config / config.php 中清除索引页面配置值:
// Old
$config['index_page'] = "index.php";
// New
$config['index_page'] = "";
有时您需要启用重写模块,运行“apache2 enable module rewrite”:
sudo a2enmod rewrite
您需要重新启动网络服务器才能应用更改:
sudo service apache2 restart
希望它有效!
如果不是,还有其他线程有同样的问题,你可以看看: - Remove index.php from codeigniter in subfolder - Remove index.php from Codeigniter URL in subfolder with Wordpress in root - Using htaccess to remove codeigniter index.php in a subdirectory