首先确保自己的配置文件:
AllowOverride All (而不是None)
然后由于opensuse中自带的apache2是经过优化的,和官网的有区别,我们并不能修改 httpd.confg,而且该文件也注明不要修改此文件。
在访问opensuse中发现有2条命令:a2enmod a2enflag,暂且先不管a2enflag,a2enmod就是添加模块的意思。
然后a2enmod 能够添加的模块在 /usr/lib64/ 路径下
ls apache*
展示的所有mod*的都是可添加的模块。
a2enmod -l
去展示我们已经生效的mod,然后如果没有rewrite 的话添加rewrite 模块:
a2enmod rewrite
重启apache2服务:
systemctl restart apache2
然后检查项目目录下的public/.htaccess 是不是空的,如果是空的添加:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
# Options +FollowSymLinks -Indexes
</IfModule>
RewriteEngine On
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Send Requests To Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
以上就可以访问了。
a2enmod -q
提示说可以查询模块,但是笔者试了下貌似不行,所以才到对应目录去找模块。