silex,.htaccess,webhosting不起作用

时间:2015-12-06 21:56:28

标签: php .htaccess web-hosting silex

这是我的文件.htaccess在本地机器和网络托管上,本地一切运行良好,但在网络托管我只能访问web / index.php,例如example.com/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>

1 个答案:

答案 0 :(得分:2)

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