这是我的文件。htaccess在本地机器和网络主机上,在本地一切都很好,但在网络主机上我只能像example.com/web/index.php 一样访问web/index.php
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteBase /web/index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
</IfModule>
您的RewriteBase不正确,您应该只放目录,而不是文件名。此外,如果您的根项目是web项目,那么您的重写基应该仅为/,并且在重写规则中,您应该告诉apache重定向所有请求。所以,你应该使用这样的东西:
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*$ /web/index.php [QSA,L]
</IfModule>
但请记住,只有您的网络文件夹必须是可公开访问的,而不是您的整个项目。如果可以的话,你应该改变它(否则你应该在根项目中放一个.htaccess文件,在web文件夹中放另一个,但这超出了你的问题范围)。