我的htaccess文件可在localhost上运行,但将其部署到EC2实例时不起作用。
我使用的是Macbook,在finder中我看不到htaccess文件,我认为也许没有将其复制到EC2实例,但是我不认为这是问题所在,因为当我复制项目时,我可以看到htaccess文件在我的编辑器中。
EC2 linux实例中是否有启用mod重写的功能?如果有,我没有这样做,或者它默认启用了mod rewrite?
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
最佳答案
我从各种帖子中整理了一些信息,所以我想我应该给出一个答案。
正如Paul所评论的那样,如果您正在运行Amazon EC2 Linux,则可能正在运行httpd而不是Apache。因此该文件位于/etc/httpd/conf/httpd.conf
中
您必须以root用户身份更改文件。 (通过ssh访问)执行以下操作:sudo vim /etc/httpd/conf/httpd.conf
(How to edit httpd.conf file in AMAZON EC2)DocumentRoot "/var/www/html"
在我这里列出了两个地方。我必须在这两个地方将随后的AllowOverride None
更改为AllowOverride All
。
重新启动Apache。我重新启动了整个ec2实例(我将apache配置为自动启动),尽管仅重新启动apache即可。但我看到这种变化正在奏效。
我试图在.htaccess文件中进行相同的更改(从代码点火器应用程序的URL中删除index.php)。希望能帮助到你!
关于apache - htaccess在localhost中有效,但在EC2实例中无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19408349/