Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 如何将trafic定向到两个不同的子文件夹?_Apache_.htaccess - Fatal编程技术网

Apache 如何将trafic定向到两个不同的子文件夹?

Apache 如何将trafic定向到两个不同的子文件夹?,apache,.htaccess,Apache,.htaccess,我有一个很简单的问题,似乎无法解决。我有两个子文件夹:一个用于Laravel,另一个用于React 如果用户试图访问example.com/api或example.com/admin,我希望他的请求转到Laravel子文件夹,而不在URL中显示example.com/Laravel/api 如果用户尝试任何其他请求,例如example.com/profile,我希望他的请求转到React子文件夹,而不在URL中显示example.com/React/profile 我知道这是非常基本的,但我需要

我有一个很简单的问题,似乎无法解决。我有两个子文件夹:一个用于Laravel,另一个用于React

如果用户试图访问
example.com/api
example.com/admin
,我希望他的请求转到Laravel子文件夹,而不在URL中显示
example.com/Laravel/api

如果用户尝试任何其他请求,例如
example.com/profile
,我希望他的请求转到React子文件夹,而不在URL中显示
example.com/React/profile


我知道这是非常基本的,但我需要帮助来理解这一点…

在根
文件中。htaccess
尝试以下操作:

RewriteEngine On

# Internally rewrite /api and /admin to /laravel subdirectory
RewriteRule ^(api|admin)$ laravel/$1 [L]

# Everything else is rewritten to the /react subdirectory
# Except for requests (including rewritten requests) to "/laravel" itself.
RewriteRule !^laravel/ react%{REQUEST_URI} [L]
这确实假设在
/laravel
/react
子目录中还有其他
.htaccess
文件也包含mod_rewrite指令

更新:如果
/react
子目录中没有
.htaccess
文件,其中也包含mod_rewrite指令,则需要向第二条规则添加一个条件以防止重写循环(500错误)。例如:

# Everything else is rewritten to the /react subdirectory
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule (.*) react/$1 [L]

通过检查
REDIRECT\u STATUS
环境变量,我们可以确保只有直接请求(即尚未重写的请求)被重写到
/react
子目录。

当我这样做时出现错误500,我将尝试更改某些内容。谢谢在
/react
子目录中是否有包含mod_rewrite指令的附加
.htaccess
文件?如前所述,这些指令假定您这样做,否则由于重写循环,您将得到一个500错误。如果需要,可以修改这些指令以说明这一点。您在
.htaccess
文件中有任何其他指令吗?(我假设您在
/react
子目录中必须已经有
.htaccess
文件,否则,react URL是如何路由的?)请注意,对于任何500个错误,您都应该检查服务器的错误日志以了解此错误的详细信息。我已经更新了答案。