我刚创建了我的服务器,我需要使用.htaccess文件,其中一个工作,另一个没有...显然.htaccess工作你需要启用AllowOverride,所以我做了以下: /etc/apache2/sites-available/default
改变了这个:
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
对此:
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
当我重新启动apache时,我的整个网站现在抛出错误500 Internal Server Error
我的.htaccess文件包含:
RewriteEngine on
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward it to index.php
RewriteRule . index.php
任何人都知道为什么?
答案 0 :(得分:21)
你的apache配置对我来说似乎没问题。
您获得500 Internal Server Error
,这表示您的htaccess
现已执行
如果您未启用 mod_rewrite ,则会出现此类错误。
启用 mod_rewrite 后,应按预期工作
另外,不要忘记添加RewriteBase
(这将防止将来出现虚拟目录问题)
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]