0

我有一个前端应用程序,/var/www/html/app该应用程序的 API 位于/var/www/html/api. 为 设置了/var/www/html/app一个名为example.com的虚拟主机。现在,我想要它,所以当用户访问example.com/api时,它将所有请求重定向到/var/www/html/api.

示例:用户在他们的浏览器中输入http://example.com/api/some/call/var/www/html/app/api/some/call - 而不是服务器寻找/var/www/html/api/some/call.

完成这项工作的最佳方法是什么?我尝试使用仅适用于 /api 的符号链接,但不适用于 /api 之后的可变路由。我想我可以让它与 mod rewrite 一起工作,但我对它并不熟悉。

更新

这是 example.com 的配置/etc/apache2/sites-available

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html/app
    ServerName example.com
    ServerAlias www.example.com

    <Directory /var/www/html/app>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

在 .htaccess 文件中/var/www/html/app(和 .htaccess 文件中的相同/var/www/html/api)

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes...
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>
4

0 回答 0