网址操作及页面转向的几种方式

📅  2017 年 2 月 4 日 📖  阅读时间 1 分钟

浅谈页面转向

先来讲讲页面转向的问题。
「页面转向」常规来讲是一种对网址重写的过程。
所以,Ngnix 及 Apache 的 Rewrite 规则是非常常用的手段。

Ngnix 的页面转向

Ngnix 需要自行修改对应空间的 Ngnix conf 文件。

方法 A

通过$host获取域名信息来判断。

if ($host != 'www.fang2hou.com' ) {
    rewrite ^/(.*)$ http://www.fang2hou.com/$1 permanent;
}

此转向方式为 301 转向。
意为「非指定域名均转向指定域名且保留后面的 path」。

方法 B

通过 80 端口传入的网址直接进行 rewrite 转向。

server
{
    listen 80;
    server_name test.com;
    rewrite ^/(.*)$ http://www.test.com/$1 permanent;
}

此转向方式为 301 转向。
意为「从匹配地址的 80 端口传入后,转发到指定地址且保留后面的 path」。
比较麻烦的是,该方法需要自己建一个独立的 vhost 来完成操作。

Apache 的页面转向

Apache 需要自行修改对应空间的 http.conf 文件。
开启 Apache 的 Rewrite 模块。(默认关闭

LoadModule rewrite_module modules/mod_rewrite.so

方法

添加

RewriteEngine on
RewriteCond %{HTTP_HOST} ^fang2hou.com [NC]
RewriteRule ^(.*)$ http://www.fang2hou.com/$1 [L,R=301]

标签法

<head>标签中,我们只要添加如下代码即可完成转向。

<meta http-equiv="refresh" content="0;url=https://www.google.co.jp">

这样,网页就会自动转向到谷歌。

JavaScript 操作网址

网址操作是基于 Javascript 的,非常的简便,快捷。
为了更加容易解释,我将采用下面的这个网址:

网络协议(protocol)实际操作

首先我们可以剥离网址中的网络协议部分。

var siteprot = "";
siteprot = window.location.protocol;

此时,我们将网页窗口的网址的网络协议部分放到了siteprot变量中。
注意: siteprot现在是「http:」而不是「http」。冒号是获取到的数据的一部分。
自然,我们也可以像下方一样来改变网络协议。不需要加冒号。

window.location.protocol = "https";

其他操作

与上方类似,各个属性都能够被操作。

属性说明
Location浏览器的实例对象
Location.hash分隔符(如#及〜)
Location.host域名及端口信息
Location.hostname域名信息
Location.href完整网址信息
Location.pathname域名信息
Location.port端口信息
Location.protocol网络协议
Location.search查询部分(「?」之后的部分)