将mod_rewrite用于DocumentRoot之外的资源

时间:2017-09-29 18:52:12

标签: .htaccess mod-rewrite apache2

我认为这是一个非常简单和经典的mod_rewrite用例,这让我很难过。

我有这样的文件结构:

/var/www/site 
/var/www/site/webapp    <-- js application     
/var/www/site/index.php <-- php entry point
/var/www/site/.. other folders..

我希望我的用户导航到“mysite.com”,它将加载webapp目录的内容,因此我认为它应该是DocumentRoot。我不能为我的生活做到这一点,同时保持PHP应用程序/路由器功能的重写。

我当前的VirtualHost配置有效,但浏览器必须指向site.dev/webapp;导航到site.dev会显示目录列表。

<VirtualHost *:80>
        ServerName site.dev

        ServerAdmin me@localhost
        DocumentRoot /var/www/site/

        LogLevel core:debug

        ErrorLog ${APACHE_LOG_DIR}/site.error.log

    <Location />
        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^ /index.php [QSA,L]
    </Location>
</VirtualHost>

所需的功能是:

  • http://site.dev/从/ webapp
  • 加载内容
  • http://site.dev/order/18重定向到从URI
  • 传递/order/18的index.php

0 个答案:

没有答案