删除子文件夹的代码点火器中的index.php

时间:2017-05-21 15:33:35

标签: php .htaccess codeigniter codeigniter-3

我有一些问题。在开发中我使用的是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]

1 个答案:

答案 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