Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.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 重定向htaccess中的其他子域_Apache_.htaccess_Mod Rewrite_Redirect_Url Redirection - Fatal编程技术网

Apache 重定向htaccess中的其他子域

Apache 重定向htaccess中的其他子域,apache,.htaccess,mod-rewrite,redirect,url-redirection,Apache,.htaccess,Mod Rewrite,Redirect,Url Redirection,我对重定向有问题 我的htaccess文件中有此代码 RewriteCond %{HTTP_HOST} ^frutasadomicilio.cl RewriteRule ^ http://www.frutasadomicilio.cl%{REQUEST_URI} [L,R=301] Redirect 301 /index.html http://www.frutasadomicilio.cl/venta-de-verduras Redirect 301 http://frutasadomici

我对重定向有问题

我的htaccess文件中有此代码

RewriteCond %{HTTP_HOST} ^frutasadomicilio.cl
RewriteRule ^ http://www.frutasadomicilio.cl%{REQUEST_URI} [L,R=301]

Redirect 301 /index.html http://www.frutasadomicilio.cl/venta-de-verduras
Redirect 301 http://frutasadomicilio.cl http://www.frutasadomicilio.cl/venta-de-verduras
此代码运行良好。此代码将所有不带www的请求重定向到www


但我的问题是,当我试图访问
resources.frutasadomicilio.cl
这是一个子域时,我会被重定向到
www.frutasadomicilio.cl/venta de verduras

我假设您的子域指向主域文档根以外的子目录(一种常见设置)?例如,
资源。
->
/resources/…

本例中的问题是继承了文件系统上父目录中的.htaccess文件。因此,请求
resources.example.com
将导致重定向(
redirect 301/index.html…

此外,您不应将mod_别名重定向(即
重定向
)与mod_重写重定向(即
重写规则
)混合使用。如果您使用mod_rewrite,则仅使用mod_rewrite

重定向301http://frutasadomicilio.cl http://www.frutasadomicilio.cl/venta-de-verduras

这一行实际上什么都不做,应该删除<代码>重定向将根相对路径(以斜杠开始)作为源路径,而不是绝对路径,因此这将永远不会匹配

最后两个
重定向
s可以重写如下(使用mod_rewrite)以避免不必要的重定向:

RewriteCond %{HTTP_HOST} ^www\.
RewriteRule ^(index\.html)?$ /venta-de-verduras [R=301,L]
现在,重定向只在主机启动
www.
(因此不包括
资源。
)时发生

或者,您可以省略上面的
RewriteCond
指令,并使用以下指令在
/resources
子目录中包含.htaccess文件

RewriteEngine On
默认情况下,mod_rewrite指令不会被继承,因此只需在子目录中启用重写引擎,即可防止执行parent.htaccess中的mod_rewrite指令(请注意,parent.htaccess文件中的其他模块仍在处理中)。如果在父.htaccess文件中有许多需要排除的重定向,那么这可能更可取