?> WDlinux官方论坛 - Powered by Discuz! Board Board logo

标题: [求助] 我用了nginx+apache,却怎么也搞不定DX2的伪静态了 [打印本页]

作者: 芜湖论坛    时间: 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

回复 4# admin


    按照你这个方法也搞不定 还是没法实现静态化 是不是因为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

本帖最后由 baifebbb 于 2011-12-9 21:35 编辑
干嘛用二种WEB呢;nginx的伪静态一般直接写在vhost里面,apache就放在.htaccess就可以了。规则大部分都是一 ...
ztskycn 发表于 2011-12-7 16:16



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

动态页
http://www.php***.net/thread.php?fid=2

转成伪静态页
http://www.php***.net/thread.php?fid-2.html  正常显示
http://www.php***.net/thread-htm-fid-2.html  找不到该页

而在纯apache环境下两种方法都是正常显示的。


根目录下的.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
  1. rewrite ^([^\.]*)/topic-(.+)\.html$ $1/portal.php?mod=topic&topic=$2 last;
  2. rewrite ^([^\.]*)/article-([0-9]+)-([0-9]+)\.html$ $1/portal.php?mod=view&aid=$2&page=$3 last;
  3. rewrite ^([^\.]*)/forum-(\w+)-([0-9]+)\.html$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3 last;
  4. rewrite ^([^\.]*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=viewthread&tid=$2&extra=page%3D$4&page=$3 last;
  5. rewrite ^([^\.]*)/group-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=group&fid=$2&page=$3 last;
  6. rewrite ^([^\.]*)/space-(username|uid)-(.+)\.html$ $1/home.php?mod=space&$2=$3 last;
  7. rewrite ^([^\.]*)/blog-([0-9]+)-([0-9]+)\.html$ $1/home.php?mod=space&uid=$2&do=blog&id=$3 last;
  8. rewrite ^([^\.]*)/(fid|tid)-([0-9]+)\.html$ $1/index.php?action=$2&value=$3 last;
  9. if (!-e $request_filename) {
  10. return 404;
  11. }
复制代码
上传到/www/wdlinux/nginx/conf/

重新加载nginx配置文件:
/www/wdlinux/nginx/sbin/nginx -s reload
作者: hyxuzhimin    时间: 2012-1-16 00:11

回复 8# baifebbb
为什么我的wordpress可以以html结尾来静态化?没有你说的要在html前面加php。nginx和apache没冲突啊?
作者: hyxuzhimin    时间: 2012-1-16 00:35

回复 9# 苍狼
我在虚拟机里搭建了一个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

这是肯定的




欢迎光临 WDlinux官方论坛 (http://www.wdlinux.cn/bbs/) Powered by Discuz! 7.2