将Silex路由到DocumentRoot的子目录中

时间:2013-11-18 16:35:49

标签: regex .htaccess mod-rewrite routing apache2

我的设置如下:

<VirtualHost *:80>
  ServerName some.project
  DocumentRoot "/var/www/projects/some/public"
  DirectoryIndex index.html index.htm index.php
</VirtualHost>

现在我可以通过http://some.project/访问我的Silex页面了。

我想要做的是添加一个位于我的公共文件夹下的管理页面:

/var/www/projects/some/public/admin

为此,我在创建的管理目录中添加了.htaccess个文件as mentioned in the docs

<IfModule mod_rewrite.c>
  Options -MultiViews

  RewriteEngine On
  RewriteBase /var/www/projects/some/public/admin
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^ index.php [QSA,L]
</IfModule>

现在,如果我致电http://some.project/admin/它可行,但位于/admin/下的任何其他路线都会返回404错误页面(例如http://some.project/admin/setting)。

Silex项目并不引人注目,只是一些测试路线。 当然mod_rewrite已启用

任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

RewriteBaseDOCUMENT_ROOT相关。试试这段代码:

<IfModule mod_rewrite.c>
  Options -MultiViews

  RewriteEngine On
  RewriteBase /admin/

  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^ index.php [L]
</IfModule>