我正在尝试在我正在处理的网站上设置一些别名。目前,这是我在本地主机上设置的前端唯一特定版本。我的问题源于需要深层链接到页面的特定部分。当用户向下滚动页面时,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知识是初学者级别的,所以非常感谢这里的任何帮助。
答案 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]