.htaccess .进入灯

.htaccess .进入灯,.htaccess,codeigniter,lamp,.htaccess,Codeigniter,Lamp,我已经在我的mac上建立了一个Codeigniter测试项目(使用MAMP),现在正试图将它迁移到我的Linux机器上(ubuntu,LAMP),以进行一些测试 显然,它不会读取.htaccess文件,因为如果index.php位丢失(在mac上工作正常),URL就不起作用(get 404)。在LAMP和MAMP上.htaccess文件的语法是否应该不同? 这是我现在使用的语法: RewriteEngine On RewriteCond $1 !^(index\.php|robots\.txt|

我已经在我的mac上建立了一个Codeigniter测试项目(使用MAMP),现在正试图将它迁移到我的Linux机器上(ubuntu,LAMP),以进行一些测试

显然,它不会读取.htaccess文件,因为如果index.php位丢失(在mac上工作正常),URL就不起作用(get 404)。在LAMP和MAMP上.htaccess文件的语法是否应该不同? 这是我现在使用的语法:

RewriteEngine On
RewriteCond $1 !^(index\.php|robots\.txt|favicon\.ico|uploads|media|myResources)
RewriteRule ^(.*)$ index.php?/$1 [L]

我在某个地方读到,您应该在编辑.htaccess后重新启动服务器。问题是,我不知道如何在Linux机器上执行此操作。

您的
.htaccess
规则因设置而被忽略。你可能想设置

AllowOverride All
此设置属于
httpd.conf
apache.conf
,是的,您需要重新启动apache服务器才能使此更改生效。稍后您可以修改
.htaccess
w/o服务器重启

配置示例(新虚拟主机模板的一部分):


#…其他配置
允许超越所有
命令允许,拒绝
通融

编辑
.htaccess
时无需重新启动任何内容,只需重新启动apache配置文件。尝试从第三个字符中删除
字符line@Vlakarados第一个提示是正确的,但是删除
的建议没有任何意义,因为它有足够的意义,在将项目上传到生产服务器后,我曾经为此而挣扎过一次。我不知道为什么会发生这种情况,但我在windows上的.htaccess没有问题,但我不得不删除卡米尔centosThanks上的
。我找到了这两个文件,但看不到该将此设置放在何处
/etc/apache2/httpd.conf
是一个空文件(可以吗?),在
/etc/phpmyadmin/apache.conf
中,我没有找到一行引用AllowOverride的内容。我只是在任何地方添加这一行吗?空的
httpd.conf
完全可以(在我的
Debian
installaltions上有相同的内容)。。。您可以将
AllowOverride All
放在您的
apache.conf
中,使其成为全局的,或者放在
VirtualHost
中,用于特定的VirtualHost。。。在这两种情况下,将其放在
目录中
。。。看到我的最新答案我回来告诉全世界我终于成功了,当我在这里看到你的编辑。(:我的案例中的相关文件是
/etc/apache2/sites available/default
。谢谢你的帮助,Kamil!
<VirtualHost *:80>
  # ...other configuration
  <Directory />
    AllowOverride All
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>