silex,.htaccess,网络主机没有';不起作用


silex, .htaccess, webhosting doesn't work

这是我的文件。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文件夹中放另一个,但这超出了你的问题范围)。