WDlinux官方论坛's Archiver

芜湖论坛 发表于 2011-11-27 02:07

我用了nginx+apache,却怎么也搞不定DX2的伪静态了

单独apache时候是好的。

admin 发表于 2011-11-27 10:01

是用到哪个规则?在n+a里,还是要用A的规则的

芜湖论坛 发表于 2011-11-27 10:22

A的规则,单独apache时候是好的。

admin 发表于 2011-11-27 10:27

你看下虚拟主机配置文件里,规则 是放在A的配置文件里还是N的配置文件里?
也可以用.htaccess格式测试下

wmica 发表于 2011-12-6 12:52

[b]回复 [url=http://www.wdlinux.cn/bbs/redirect.php?goto=findpost&pid=758&ptid=292]4#[/url] [i]admin[/i] [/b]


    按照你这个方法也搞不定 还是没法实现静态化 是不是因为A没有加载了 mod_rewrite 模块 是不是需要我们自己安装或者设置httpd.conf

wmica 发表于 2011-12-6 13:25

在线等候老大恢复

ztskycn 发表于 2011-12-7 16:16

干嘛用二种WEB呢;nginx的伪静态一般直接写在vhost里面,apache就放在.htaccess就可以了。规则大部分都是一样的。

baifebbb 发表于 2011-12-9 21:26

[i=s] 本帖最后由 baifebbb 于 2011-12-9 21:35 编辑 [/i]

[quote]干嘛用二种WEB呢;nginx的伪静态一般直接写在vhost里面,apache就放在.htaccess就可以了。规则大部分都是一 ...
[size=2][color=#999999]ztskycn 发表于 2011-12-7 16:16[/color] [url=http://www.wdlinux.cn/bbs/redirect.php?goto=findpost&pid=1304&ptid=292][img]http://www.wdlinux.cn/bbs/images/common/back.gif[/img][/url][/size][/quote]


没用的。伪静态没有想像的那么简单,下面是PW8.7的规则,凡是与PHP相关的显示都正常,而与HTM相关的都是无法显示的。估计HTM的伪静态规则是交给了nginx处理了,而apache只处理含PHP的规则。
例:

动态页
[url=http://www.php***.net/thread.php?fid=2]http://www.php***.net/thread[color=red][b].php?[/b][/color]fid=2[/url]

转成伪静态页
[url=http://www.php***.net/thread.php?fid-2.html]http://www.php***.net/thread[color=red][b].php?[/b][/color]fid-2[color=red][b].html[/b][/color][/url]  正常显示
[url=http://www.php***.net/thread-htm-fid-2.html]http://www.php***.net/thread[color=red][b]-htm-[/b][/color]fid-2[color=red][b].html[/url]  找不到该页[/b][/color]
[b][color=#ff0000][/color][/b]
[b][color=#ff0000]而在纯apache环境下两种方法都是正常显示的。[/color][/b]

[b][color=#ff0000][/color][/b]
根目录下的.htaccess

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteRule f(\d+)_(.*)_(.*)$ /thread.php?fid=$1&page=$2&type=$3
RewriteRule f(\d+)_(.*)$ /thread.php?fid=$1&page=$2
RewriteRule f(\d+)$ /thread.php?fid=$1
RewriteRule (\d+)_(.*)_(.*)_(.*).html$ /read.php?tid=$1&page=$2&fpage=$3&uid=$4
RewriteRule (\d+)_(.*)_(.*).html$ /read.php?tid=$1&page=$2&fpage=$3
RewriteRule (\d+)_(.*).html$ /read.php?tid=$1&page=$2
RewriteRule (\d+).html$ /read.php?tid=$1
RewriteRule ^(.*)-htm-(.*)$ $1.php?$2
RewriteRule /simple/([a-z0-9\_]+)\.html$ /simple/index\.php\?$1
RewriteRule ^u/([0-9]+)$ u.php?uid=$1
</IfModule>

苍狼 发表于 2011-12-11 19:15

是啊 我用Lanmp 实现不了静态化 我用的 Discuz  和 WordPress 建站,  把在Wdcp的网站配置里2个站点添加规则 报 nginx 502错误, 只给Discuz 添加规则 可是实现伪静态, 而只给 Wordpress 添加规则 却不能实现,
我试着面板里关掉规则 而在2个网站根目录添加.htaccess 均无法实现.
而单独只安装 LAMP 则无论是WDCP面板添加规则 还是网站根目录添加.htaccess  两个站点都能完美实现伪静态
PS: 我用 Centos 6 和 centos 5.7 都测试了 均是这样

15433 发表于 2011-12-21 12:07

进入:/www/wdlinux/nginx/conf/vhost

编辑:主机.conf

在server段 ,root /目录
的下面加 include discuzx.conf;
然后保存
把下面保存为discuzx.conf[code]rewrite ^([^\.]*)/topic-(.+)\.html$ $1/portal.php?mod=topic&topic=$2 last;
rewrite ^([^\.]*)/article-([0-9]+)-([0-9]+)\.html$ $1/portal.php?mod=view&aid=$2&page=$3 last;
rewrite ^([^\.]*)/forum-(\w+)-([0-9]+)\.html$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3 last;
rewrite ^([^\.]*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=viewthread&tid=$2&extra=page%3D$4&page=$3 last;
rewrite ^([^\.]*)/group-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=group&fid=$2&page=$3 last;
rewrite ^([^\.]*)/space-(username|uid)-(.+)\.html$ $1/home.php?mod=space&$2=$3 last;
rewrite ^([^\.]*)/blog-([0-9]+)-([0-9]+)\.html$ $1/home.php?mod=space&uid=$2&do=blog&id=$3 last;
rewrite ^([^\.]*)/(fid|tid)-([0-9]+)\.html$ $1/index.php?action=$2&value=$3 last;
if (!-e $request_filename) {
return 404;
}[/code]上传到/www/wdlinux/nginx/conf/

重新加载nginx配置文件:
/www/wdlinux/nginx/sbin/nginx -s reload

hyxuzhimin 发表于 2012-1-16 00:11

[b]回复 [url=http://www.wdlinux.cn/bbs/redirect.php?goto=findpost&pid=1544&ptid=292]8#[/url] [i]baifebbb[/i] [/b]
为什么我的wordpress可以以html结尾来静态化?没有你说的要在html前面加php。nginx和apache没冲突啊?

hyxuzhimin 发表于 2012-1-16 00:35

[b]回复 [url=http://www.wdlinux.cn/bbs/redirect.php?goto=findpost&pid=1782&ptid=292]9#[/url] [i]苍狼[/i] [/b]
我在虚拟机里搭建了一个DISCUZ X2。 伪静态选择了dzx15_apache.可以实现DISCUZ伪静态。
同时还有一个wordpress,我是直接写的htaccess文件放在wordpress文件夹里的。也实现了wordpress伪静态。
上面两个都是用apache伪静态规则的。两个都很正常。
至于一个用nginx伪静态,一个用apache伪静态,我还没试过。我想这样做可能会有冲突吧。

hyxuzhimin 发表于 2012-1-16 00:41

果然,把dzx15_apache换成dzx15_nginx之后,discuz和wordpr都报错了。
502 Bad Gateway
nginx/1.0.1
看来不能两种规则混用啊。

admin 发表于 2012-1-16 09:10

这是肯定的

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.