在 ubuntu 13.10 上从 XAMPP 移动到 LAMP 后 htaccess 不起作用(在 apache linux 服务器中启用 htaccess)

Posted

技术标签:

【中文标题】在 ubuntu 13.10 上从 XAMPP 移动到 LAMP 后 htaccess 不起作用(在 apache linux 服务器中启用 htaccess)【英文标题】:htaccess is not working after moving from XAMPP to LAMP on ubuntu 13.10 (Enable htaccess in apache linux server) 【发布时间】:2014-04-13 03:34:55 【问题描述】:

我的 CodeIgniter 项目使用 url 在我的 XAMPP 系统上成功运行,

http://localhost/newsfeeds/users/allCategories/

当我将此项目移动到另一个系统时,Ubuntu 13.10 上有 LAMP 服务器。要运行相同的页面,我需要 url,

http://localhost/newsfeeds/index.php/users/allCategories/

我需要 index.php 文件,否则会显示页面未找到错误。

我的 htaccess 文件是,

RewriteEngine On
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule ^(.*)$ index.php/$1 [L]

如何在没有 index.php 的情况下在 WAMPP 和 XAMP 服务器上运行相同的项目?

【问题讨论】:

重写模块是否启用? @Rufinus 是的,重写模块已启用 .htaccess 文件是否已移至 LAMP 服务器? AllowOverride All 用于 htdocs 目录? error.log 中有任何消息吗? @SverriM.Olsen 是的 .htaccess 文件也在 LAMP 中 【参考方案1】:

我找到了这个问题的解决方案。

在我的服务器中,模式重写已经开启。但是需要在/etc/apache2/apache2.conf 文件上更改一些默认值。以下是我的更改,

首先,找到

<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

并将 AllowOverride None 更改为 All 并保存。

然后使用命令启用模式重写(在这种情况下已经启用),

$ sudo a2enmod rewrite

然后重启服务器,

$ sudo /etc/init.d/apache2 restart

运行项目。工作正常。

【讨论】:

【参考方案2】:

试试这个:

RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule ^(.*)$ index.php?/$1 [QSA,L]

【讨论】:

以上是关于在 ubuntu 13.10 上从 XAMPP 移动到 LAMP 后 htaccess 不起作用(在 apache linux 服务器中启用 htaccess)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Ubuntu 上将 mod_wsgi 安装到 xampp 服务器?遇到 libtool 错误

Mcrypt 无法处理新的 ubuntu 设置

如何在 Ubuntu 13.10 上安装 Graphite?

如何在 ubuntu 13.10 中创建虚拟主机

Ubuntu 服务器 13.10 上的 ZPanel

Cordova 在 Ubuntu 13.10 上运行失败