Apache虚拟主机别名

时间:2013-07-30 15:17:33

标签: apache alias

我正在尝试在我正在处理的网站上设置一些别名。目前,这是我在本地主机上设置的前端唯一特定版本。我的问题源于需要深层链接到页面的特定部分。当用户向下滚动页面时,URL将通过JavaScript更新。

例如,当我加载页面时,我的网址为: local-www.blahblah.com/en-US/home.html

当我向下滚动页面并且某些元素进入视图时,URL会被更改。例如,它可能会变成......

local-www.blahblah.com/en-US/category/title-1 /

local-www.blahblah.com/en-US/category/title-2 /

我需要做的是通过刷新或直接输入转到新网址,并在保持网址完整的同时显示 home.html 文件。< / p>

例如:我输入 local-www.blahblah.com/en-US/category/title / ,然后加载 home.html 作为该网址。

我以为我可以在我的虚拟主机配置中使用带有通配符的Alias来执行此操作,但这对我不起作用。

<VirtualHost *:80 *:82>
    DocumentRoot "/Library/WebServer/blahblah.com/deploy"
    ServerName local-www.blahblah.com
    Alias /en-US/* /en-US/home.html
</VirtualHost>

我的Apache知识是初学者级别的,所以非常感谢这里的任何帮助。

1 个答案:

答案 0 :(得分:1)

我认为最好的方法是使用mod_rewrite,首先关闭所有,你需要启用modrewrite。如果你使用debian / ubuntu,你需要在/ etc / apache2 / mods-enabled目录中创建一个符号链接

sudo ln -s ../mods-available/rewrite.load .

然后在VirtualHost中添加此配置

RewriteEngine On
RewriteRule ^/en-US/?(.*)$ /en-US/home.html [L]

第一行启用模块 我使用正则表达式来限制重写规则:

  

^ / zh-CN =网址必须以/ en-US开头/? = /是   可选
(。*)$ =任何字符,我用()来分组内容   它为您提供了使用变量$ 1

重用它的选项

这里有一个使用变量的例子:

RewriteEngine On
RewriteRule ^/en-US/?(.*)$ /en-US/home.php?Var=$1 [L]