在 Mandriva 上的 CodeIgniter 中从 URL 中删除 index.php
Removing index.php from URL in CodeIgniter on Mandriva
我在 Windows OS 上开发了一个使用 CodeIgniter 的项目。该项目在 XAMPP (Windows) 和 Linux 托管服务器上运行良好(更新了服务器上的 .htaccess 即可运行)。我想将 Open Mandriva 用于开发目的。如果我 运行 控制器使用 index.php,它就可以工作。
我尝试了很多 .htaccess 规则示例、链接。但是控制器没有加载。
我试过:Cannot remove index.php from CodeIgniter URL, CodeIgniter removing index.php from url 和
this external link,以及许多其他链接。
.htaccess 代码在 Windows 机器上
RewriteEngine on
RewriteCond !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/ [L,QSA]
.htaccess 代码在 Linux 托管服务器
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/system.*
RewriteRule ^(.*)$ index.php?/ [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?/ [L]
两者都没有在 Open Mandriva 上工作。
.htaccess 路径
/srv/www/html/ci/
页面给出:
404 error, and Object not found!
我项目的文件系统路径是
/srv/www/html/ci/application/controllers/
在浏览器上:
localhost/ci/branch
如果我添加 index.php 就像
项目工作
localhost/ci/index.php/branch
跟http服务器配置有关系吗?我需要安装任何软件包吗?我还尝试了一些用于 apache 重写引擎的命令。但是我收到错误作为未知命令。
请尝试以下操作:
RewriteEngine on
RewriteBase /ci/
RewriteCond !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L,QSA]
然后,在config.php
:
$config['index_page'] = "";
$config['uri_protocol'] = "REQUEST_URI";
请确保您的 .htaccess
与 index.php
位于同一目录中。
检查重写引擎是否为enabled。
如果没有,启用重写引擎并重启服务器。
sudo a2enmod rewrite
sudo service apache2 restart
转到
/etc/httpd/conf/httpd.conf - for Mandriva
/etc/apache2/apache2.conf - for Ubuntu
将AllowOverride None
更改为AllowOverride All
代码块:
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# AllowOverride FileInfo AuthConfig Limit
#
AllowOverride All
重新启动 Apache(httpd) 服务。
config.php
或其他任何地方都不需要更改。
.htaccess 代码:
RewriteEngine on
RewriteCond !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/ [L,QSA]
我在 Windows OS 上开发了一个使用 CodeIgniter 的项目。该项目在 XAMPP (Windows) 和 Linux 托管服务器上运行良好(更新了服务器上的 .htaccess 即可运行)。我想将 Open Mandriva 用于开发目的。如果我 运行 控制器使用 index.php,它就可以工作。
我尝试了很多 .htaccess 规则示例、链接。但是控制器没有加载。
我试过:Cannot remove index.php from CodeIgniter URL, CodeIgniter removing index.php from url 和 this external link,以及许多其他链接。
.htaccess 代码在 Windows 机器上
RewriteEngine on
RewriteCond !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/ [L,QSA]
.htaccess 代码在 Linux 托管服务器
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/system.*
RewriteRule ^(.*)$ index.php?/ [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?/ [L]
两者都没有在 Open Mandriva 上工作。
.htaccess 路径
/srv/www/html/ci/
页面给出:
404 error, and Object not found!
我项目的文件系统路径是
/srv/www/html/ci/application/controllers/
在浏览器上:
localhost/ci/branch
如果我添加 index.php 就像
项目工作localhost/ci/index.php/branch
跟http服务器配置有关系吗?我需要安装任何软件包吗?我还尝试了一些用于 apache 重写引擎的命令。但是我收到错误作为未知命令。
请尝试以下操作:
RewriteEngine on
RewriteBase /ci/
RewriteCond !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L,QSA]
然后,在config.php
:
$config['index_page'] = "";
$config['uri_protocol'] = "REQUEST_URI";
请确保您的 .htaccess
与 index.php
位于同一目录中。
检查重写引擎是否为enabled。
如果没有,启用重写引擎并重启服务器。
sudo a2enmod rewrite
sudo service apache2 restart
转到
/etc/httpd/conf/httpd.conf - for Mandriva
/etc/apache2/apache2.conf - for Ubuntu
将AllowOverride None
更改为AllowOverride All
代码块:
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# AllowOverride FileInfo AuthConfig Limit
#
AllowOverride All
重新启动 Apache(httpd) 服务。
config.php
或其他任何地方都不需要更改。
.htaccess 代码:
RewriteEngine on
RewriteCond !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/ [L,QSA]