当前位置: > Linux服务器 > nginx >

nginx支持.htaccess伪静态页面跳转配置方法

时间:2014-12-30 22:54来源:linux.it.net.cn 作者:IT
本文介绍了nginx下支持.htaccess伪静态的配置方法,实现类似apache下的rewrite模块功能,nginx 伪静态配置的例子。

在apache上可以用.htaccess实现页面转向(伪静态),在apache编译时指明支持rewrite模块就可以了。

在nginx的配置文件中include .htacces文件,可以实现相同的功能。

举例说明,把www.it.net.cn的.htaccess迁移到nginx上,即实现域名重定向。

步骤:

第一步:修改.htaccess文件,apache的rewrite重定向转向规则跟nginx转向规则不同,nginx的根目录需要写在每行转向的地址前,每行规则必须以分号(;)结束,301跳转或者404等跳转使用不同的格式。

apache上htaccess转换到nginx上:
 

 
RewriteEngine On
RewriteBase /
RewriteRule ^show-([0-9]+)-([0-9]+)\.html$ index.php?action=show&id=$1&page=$2
RewriteRule ^category-([0-9]+)-([0-9]+)\.html$ index.php?action=index&cid=$1&page=$2
RewriteRule ^archives-([0-9]+)-([0-9]+)\.html$ index.php?action=index&setdate=$1&page=$2
RewriteRule ^(archives|search|reg|login|index|links)\.html$ index.php?action=$1
RewriteRule ^(comments|tagslist|trackbacks|index)-([0-9]+)\.html$ index.php?action=$1&page=$2
rewriteCond %{http_host} ^it.net.cn [NC]
rewriteRule ^(.*)$ http://www.it.net.cn/$1 [R=301,L]
ErrorDocument 404 http://www.it.net.cn/

转换成nginx的规则
 

 
rewrite ^/show-([0-9]+)-([0-9]+)\.html$ /index.php?action=show&id=$1&page=$2;
 rewrite ^/category-([0-9]+)-([0-9]+)\.html$ /index.php?action=index&cid=$1&page=$2;
 rewrite ^/archives-([0-9]+)-([0-9]+)\.html$ /index.php?action=index&setdate=$1&page=$2;
 rewrite ^/(archives|search|reg|login|index|links)\.html$ /index.php?action=$1;
 rewrite ^/(comments|tagslist|trackbacks|index)-([0-9]+)\.html$ /index.php?action=$1&page=$2;
if ($host != 'www.it.net.cn' ) {   
  rewrite ^/(.*)$ http://www.it.net.cn/$1 permanent;   

error_page  404 http://www.it.net.cn/;

第二步:修改nginx的配置文件,增加include该.htaccess文件
vi /etc/nginx/sites-available/www.it.net.cn
增加一行:
 

include /var/www/www.itnetcn/.htaccess

修改为相应地址。

第四步:测试,重启nginx服务。
 

/etc/init.d/nginx -config test

重启:
 

/etc/init.d/nginx  restart




(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容