Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.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
Php .htaccess重写多个子域_Php_.htaccess_Redirect - Fatal编程技术网

Php .htaccess重写多个子域

Php .htaccess重写多个子域,php,.htaccess,redirect,Php,.htaccess,Redirect,我有一台服务器,例如123.123.123.123 它有两个指向它的URL www.mysite.com和 api.mysite.com 如何使www.mysite.com重定向到123.123.123.123/front 而api.mysite.com将重定向到123.123.123.123/api 对于www.mysite.com,不应在地址栏上显示www.mysite.com/front 提前谢谢 您的问题的部分解决方案如下: RewriteCond %{HTTP_HOST} ^e

我有一台服务器,例如123.123.123.123 它有两个指向它的URL

www.mysite.com和 api.mysite.com

如何使www.mysite.com重定向到123.123.123.123/front 而api.mysite.com将重定向到123.123.123.123/api

对于www.mysite.com,不应在地址栏上显示www.mysite.com/front


提前谢谢

您的问题的部分解决方案如下:

    RewriteCond %{HTTP_HOST} ^example.com$
    RewriteRule ^$ http://example.com/Front/index.php

您可以在站点root.htaccess中使用以下两条规则:

RewriteEngine On

# route www.example.com and example.com
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC]
RewriteRule !^front/ Front%{REQUEST_URI} [L,NC]

# route api.example.com
RewriteCond %{HTTP_HOST} ^api\.example\.com$ [NC]
RewriteRule !^api/ api%{REQUEST_URI} [L,NC]

重写规则^front/
使用否定条件匹配模式,这意味着如果
请求URI
不是以
/front/

开头,则执行此规则,但我设法使其与htaccess一起工作:

RewriteCond %{HTTP_HOST} www.mysite.com [NC,OR]
RewriteCond %{HTTP_HOST} ^mysite.com [NC]
RewriteRule ^(.*)$ front/$1 [L]

你为什么不使用虚拟主机?因为OP不想让URL显示子文件夹路径,这会起作用吗?是的,它不起作用。我最近得到的是RewriteRule^(.*)front/$1[L],它将www.mysite.com重定向到123.123.123.123/front,而不显示子文件夹路径,但它将中断api.mysite.com,因为它将搜索123.123.123.123/front/api/您需要创建多个规则作为规则。你可以用你想出来的或者我在《关于》中给你的。你需要根据theseYes@anubhava来设计解决方案,这就是我想要的meant@anubhava抱歉,我不是.htaccess的专业人士,所以我不太明白这一点。仍在努力学习,如果您能帮我澄清这个疑问,我将不胜感激:重写条件是否正确?因此
RewriteCond%{HTTP\u HOST}^api\.example\.com$[NC]
表示如果满足api.example.com,则表示它不受约束。然后执行
重写规则^api/api%{REQUEST_URI}[L,NC]
这意味着如果url不是api.example.com/api/那么执行api.example.com?先谢谢你,你解释得对<代码>^(www\)?结合了答案的两个条件
RewriteCond%{HTTP\u HOST}^api\.example\.com$[NC]
表示执行
RewriteRule
是请求中的主机名is
api.example.com
<代码>重写规则^api/api%{REQUEST\u URI}[L,NC]意味着执行规则是REQUEST\u URI不以
/api/
开头
api%{REQUEST_URI}
意味着将当前URI附加到
/api
路径。您不需要两个单独的条件。看到我上面的答案。是的,我意识到这很相似,
^(www\)?
结合了这两种情况。我不知道第二行是怎么工作的。我们将在下面发表评论。