nginx 域名跳转一例~~~(rewrite、proxy)

nginx 域名跳转一例~~~(rewrite、proxy),第1张

前几天搭了一个论坛服务器并放到了公司的局域网里面,论坛用的是9066端口并在路由器上面做了个端口转发,而且把bbsxxxcom这个域名也指向了公司的公网IP,因为想让用户在访问的时候不用输入端口号于是就想在公司的web服务器上面做个跳转,将访问bbsxxxcom的请求都转到他的服务器上面去。我第一个想法就是 用 nginx的rewrite,过程很简单 配置如下:

server {
listen 80;
server_name bbsxxxcom;
rewrite "^/() " >

IIS环境

如果你的服务器环境支持ISAPI_Rewrite的话,可以配置>

RewriteRule ()$ /index\php\s=$1 [I]

在IIS的高版本下面可以配置webConfig,在中间添加rewrite节点:

<rewrite>

<rules>

<rule name="OrgPage" stopProcessing="true">

<match url="^()$" />

<conditions logicalGrouping="MatchAll">

<add input="{>

<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />

<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />

</conditions>

<action type="Rewrite" url="indexphp/{R:1}" />

</rule>

</rules>

</rewrite>

Nginx环境

在Nginx低版本中,是不支持PATHINFO的,但是可以通过在Nginxconf中配置转发规则实现:

location / { // …省略部分代码

 if (!-e $request_filename) {

 rewrite  ^()$  /indexphps=$1  last;

 break;

  }

}

其实内部是转发到了ThinkPHP提供的兼容模式的URL,利用这种方式,可以解决其他不支持PATHINFO的WEB服务器环境。

如果你的ThinkPHP安装在二级目录,Nginx的伪静态方法设置如下,其中youdomain是所在的目录名称。

  location /youdomain/ {

      if (!-e $request_filename){

          rewrite  ^/youdomain/()$  /youdomain/indexphps=$1  last;

      }

  }

右键网站属性,点击ISAPI_Rewrite,点击import,找到>

所谓伪静态就是通过一定的技术手段,将原先一条不存在的URL地址映射到已存在的文件上,其目的是实现动态网页内容的静态化,提高搜索引擎收录率。

方法/步骤:

1、IIS 70以上服务器

微软IIS 70以上版本完全重写了IIS的内核结构,采用模块化的设计构架,URL重写也成为可选安装的模块之一。朝暮数据的全部虚拟主机都安装了URL重写模块,因此客户可以通过轻松的配置webconfig文件来实现伪静态功能。

下面是实现第一段所述伪静态规则的webconfig代码。

<xml version="10" encoding="UTF-8"><configuration>    <systemwebServer>        <rewrite>            <rules>                <rule name="已导入的规则 1">                    <match url="product/([a-z]+)/([0-9]+)" ignoreCase="false" />                    <action type="Rewrite" url="productaspxcategory={R:1}&amp;id={R:2}" appendQueryString="false" />                </rule>            </rules>        </rewrite>    </systemwebServer></configuration>

2、Apache服务器

Linux系统下的Apache服务器在伪静态设置方面比较简单。由于Apache的mod_rewrite模块默认就是开启的,所以站长只需在空间下上传正确的htaccess配置文件即可。下面也给出实现上述伪静态功能的规则代码。

RewriteEngine onRewriteRule product/([a-z]+)/([0-9]+) productphpcategory=$1&id=$2

3、IIS 60服务器

在IIS 60环境下,无论是ASP、ASPNET或者是PHP程序,我们都可以借助第三方的Rewrite组件来实现静态化,点此下载组件。

将该组件下载到服务器的C盘,解压后对目录设置权限,赋予Users组读取和运行权限。

4、打开该目录下的>

[ISAPI_Rewrite]了>

RewriteRule ^/product/([a-z]+)/(\d+)\()$ /productaspx\category=$1&id=$2

5、下面就是将该组件配置到IIS中了。打开网站属性,点击ISAPI筛选器选项卡,再点击添加按钮。

6、在对话框中,输入筛选器名称,如rewrite,然后定位到我们之前解压下来的可执行文件Rewritedll上。

至此,基于IIS 60的伪静态配置完毕。如果有多个站点,那么就复制同样的Rewrite目录,然后定位到不同目录中的Rewritedll即可。如果要修改规则,只需修改>

ASPNET Routing

NET框架从40版本起开始支持Routing功能,如果您的代码是ASPNET编写的,则可以考虑使用这种静态化方式。这种方式的好处就是无需在服务器上做配置,并且伪静态的URL地址和整个代码是天然一体的,代码中可以自动生成静态化URL,避免了在htaccess/webconfig模式下,一旦修改了伪静态规则,还要修改代码中的静态化网址的麻烦。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10769663.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-11
下一篇2023-05-11

发表评论

登录后才能评论

评论列表(0条)

    保存