2015-06-20 142 views
0

我想为我的网站添加一个别名。因此,website.com/alias将转到根文件夹之外的文件夹。这个文件夹包含一个不同的网站,所以我想能够将这个别名视为一个子域名。Apache别名为外部目录和所有子目录

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

我希望这会匹配所有呼叫,这样website.com/subdir1/css/style.css也将是一个有效的路径,但所有这些都返回404错误。

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

+0

从技术上讲,任何子目录不被视为子域,无论它指向何处。它实际上是一个子目录。子域名是subdomain.example.com,其中www.example.com是域名。 – yardpenalty

回答

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] 

以上是不足以解决基于我已链接后的问题。

0

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

LoadModule alias_module modules/mod_alias.so 
+0

这个别名已经起作用了,它只是没有选择别名内的子目录 –

+0

你检查了目录的权限吗?你是否还观察到/ var/log/httpd/error_log中的任何特定错误? – Shubhangi

+0

错误日志只是说它找不到文件。由于某些原因,所有文件路径都被剥离了子目录。如果我访问website.com/subdir/css,它会将我带到website.com/css –

相关问题