![如何使用 htaccess 将文件重写到新的基目录](https://linux22.com/image/549561/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20htaccess%20%E5%B0%86%E6%96%87%E4%BB%B6%E9%87%8D%E5%86%99%E5%88%B0%E6%96%B0%E7%9A%84%E5%9F%BA%E7%9B%AE%E5%BD%95.png)
因此我有一个子域名 sub1.example.com,它映射到位于服务器根目录中的目录:/subdomains/sub1/httpdocs/
我有另一个子域名 sub2.example.com,它映射到不同的目录:/subdomains/sub2/httpdocs/
它位于一家托管公司,不允许我更改 Apache 配置文件。
我想使用 .htaccess 文件允许位于 sub1 目录中的文件处理 sub2 请求。几乎像符号链接一样。我需要保留主机名。所以http://sub2.example.com/test.php将访问与http://sub1.example.com/test.php,但主机名将被保留。
我在 /subdomains/sub2/httpdocs/.htaccess 中尝试了以下内容:
重写引擎开启 重写规则 ^(.*)$ /subdomains/sub1/httpdocs/$1
但我收到了内部服务器错误。
有什么建议么?
答案1
该^(.*)$
模式捕获 URL 的完整路径部分,该部分始终以 开头/
,因此您可能应该从 中删除最后一个 / RewriteRule
。它应该是这样的:
RewriteEngine On
RewriteRule ^(.*)$ /subdomains/sub1/httpdocs$1
或者让模式匹配除第一个之外的所有内容/
:
RewriteEngine On
RewriteRule ^/(.*)$ /subdomains/sub1/httpdocs/$1