外部目录和所有子目录的Apache别名

时间:2015-06-20 18:35:12

标签: apache .htaccess alias

我想为我的网站添加别名。这样website.com/alias将转到根文件夹之外的文件夹。此文件夹包含一个不同的网站,因此我希望能够将此别名视为子域名。

AliasMatch  ^/subdir1/(.*)$ /var/www/otherfolder/subdir1/$1

我希望这会匹配所有来电,因此website.com/subdir1/css/style.css也是有效路径,但所有这些都返回404错误。

如何使别名与通配符匹配,以便该条目将涵盖别名文件夹中的所有子目录。我希望能够在apache级别上执行此操作,而不必在.htaccess文件中执行此操作,因为事情已经非常复杂,所以我想尽可能绕过它。

2 个答案:

答案 0 :(得分:0)

如果您加载了mod_alias.so http模块,则别名将起作用。您需要编辑httpd.conf配置文件并添加以下行并重新启动httpd。

LoadModule alias_module modules/mod_alias.so

答案 1 :(得分:0)

问题是由基本网址引起的。 “/”没有正确地作为基本URL工作。相反,我能够根据这里的答案解决它。

Set RewriteBase to the current folder path dynamically

RewriteCond %{REQUEST_URI}::$1 ^(.*?/)(.*)::\2$
RewriteRule ^(.*)$ - [E=BASE:%1]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ %{ENV:BASE}/index.php [L]

以上内容足以解决基于我已链接的帖子的问题。