Apache别名虚拟主机
我有两个应用程序在同一台服务器上运行,我希望从url中的子路径提供一个应用程序(即:Apache别名虚拟主机,apache,virtualhost,mod-alias,Apache,Virtualhost,Mod Alias,我有两个应用程序在同一台服务器上运行,我希望从url中的子路径提供一个应用程序(即: foo.com->/var/www/foo foo.com/bar->/var/www/bar 我正在尝试使用别名,但不起作用: <VirtualHost *:80> ServerAdmin webmaster@foo.com ServerName foo.com DocumentRoot /webapps/foo/current/public <Directory /we
- foo.com->/var/www/foo
- foo.com/bar->/var/www/bar
<VirtualHost *:80>
ServerAdmin webmaster@foo.com
ServerName foo.com
DocumentRoot /webapps/foo/current/public
<Directory /webapps/foo/current/public>
AllowOverride all
Options -MultiViews
</Directory>
RailsEnv staging
Alias /blog /webapps/blog/current
<Directory /webapps/blog/current>
allow from all
Options +Indexes
</Directory>
服务器管理员webmaster@foo.com
ServerName foo.com
DocumentRoot/webapps/foo/current/public
允许超越所有
选项-多视图
RailsEnv分期
别名/blog/webapps/blog/current
通融
选项+索引
你知道这为什么不起作用吗
我还尝试了serverpath指令,但没有成功
你知道如何做到这一点吗
提前感谢。使用
别名匹配
而不是别名
:
AliasMatch ^/bar/?(.*) /var/www/bar/$1
或者,在您的情况下:
AliasMatch ^/blog/?(.*) /webapps/blog/current/$1
您是否考虑过为其他应用程序使用另一个单独的子域,如
bar.foo.com
下面是您如何设置的:
<VirtualHost *:80>
ServerAdmin webmaster@foo.com
DocumentRoot /var/www/foo
ServerName foo.com
ServerAlias foo.com www.foo.com
ErrorLog logs/foo.com_Error_Log
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@foo.com
DocumentRoot /var/www/bar
ServerName bar.foo.com
ErrorLog logs/bar.foo.com_Error_Log
</VirtualHost>
服务器管理员webmaster@foo.com
DocumentRoot/var/www/foo
ServerName foo.com
ServerAlias foo.com www.foo.com
错误日志/foo.com\u错误日志
服务器管理员webmaster@foo.com
DocumentRoot/var/www/bar
ServerName bar.foo.com
错误日志/bar.foo.com\u错误日志
您的虚拟主机是否正常工作?因为如果你需要通过www.
以及域的根来访问它,我会说你需要一个ServerAlias www.foo.com
在那里…另外,两个应用程序都使用了mod_rewrite
ing吗?哦,对不起,实际上地址没有www。我在帖子上修复了这个问题。virtualhost正在运行,我可以访问它,但如果我转到/blogs/it,它将什么也不做。两个应用程序的.httaccess中都有mon_rewrite,您得到了什么?404?Apache日志中有什么内容?您是否在重写/blogs
目录的规则时使用了[PT]
?我得到了一个由/var/www/foo处理的404。我没有[PT]重写规则。事实上,我没有重写/博客。。。我在用它做其他事情。我需要重写和别名才能工作吗?