以下是我专门讨论的网站:http://anomet.com。 主页加载正常,但导航到另一个页面不会,除非它的前缀是index.php。例如:http://anomet.com/index.php/lighting有效,但http://anomet.com/lighting没有。该网站使用Laravel 5.4.15创建。该网站托管在Bell的服务器上,当我打电话给他们时,他们说应该启用mod_rewrites。我也在我的存储文件夹上设置了适当的权限(755),因为我读过没有Laravel文件夹的适当权限可能会导致此问题。这是我的.htaccess文件:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
AddHandler phpCGI .xml .php
Action phpCGI /cgi-bin/php5.6fcgi
# for php5 and securewebexchange
<IfDefine SSL>
AddHandler phpCGI .xml .php
Action phpCGI https://secure9.securewebexchange.com/anomet.com/cgi-bin/php5.6fcgi
</IfDefine>
贝尔说错了mod_rewrites是否已启用?技术支持人员对手机没有信心,他们实际上没有检查配置文件(例如httpd.conf或apache.conf),看看它是否有类似AllowOverride All
或{{1}的内容在里面。
最后,我将完全相同的文件上传到Namecheap服务器(https://kdev.solutions/),一切都在那里工作,这进一步让我相信问题出在Bell的服务器配置上。