我认为这是一个非常简单和经典的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