Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[求助] 页面使用的是nginx+Apache话,伪静态规则如何弄?

[复制链接]
天津站长吴敬宗 发表于 2017-5-22 22:29:57 | 显示全部楼层 |阅读模式
尝试过是在.htaccess写入以下Apache规则:
<IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{QUERY_STRING} ^(.*)$
        RewriteRule ^(.*)/topic-(.+)\.html$ $1/portal.php?mod=topic&topic=$2&%1
        RewriteCond %{QUERY_STRING} ^(.*)$
        RewriteRule ^(.*)/article-([0-9]+)-([0-9]+)\.html$ $1/portal.php?mod=view&aid=$2&page=$3&%1
        RewriteCond %{QUERY_STRING} ^(.*)$
        RewriteRule ^(.*)/forum-(\w+)-([0-9]+)\.html$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3&%1
        RewriteCond %{QUERY_STRING} ^(.*)$
        RewriteRule ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=viewthread&tid=$2&extra=page\%3D$4&page=$3&%1
        RewriteCond %{QUERY_STRING} ^(.*)$
        RewriteRule ^(.*)/group-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=group&fid=$2&page=$3&%1
        RewriteCond %{QUERY_STRING} ^(.*)$
        RewriteRule ^(.*)/space-(username|uid)-(.+)\.html$ $1/home.php?mod=space&$2=$3&%1
        RewriteCond %{QUERY_STRING} ^(.*)$
        RewriteRule ^(.*)/blog-([0-9]+)-([0-9]+)\.html$ $1/home.php?mod=space&uid=$2&do=blog&id=$3&%1
        RewriteCond %{QUERY_STRING} ^(.*)$
        RewriteRule ^(.*)/(fid|tid)-([0-9]+)\.html$ $1/index.php?action=$2&value=$3&%1
        RewriteCond %{QUERY_STRING} ^(.*)$
        RewriteRule ^(.*)/([a-z]+[a-z0-9_]*)-([a-z0-9_\-]+)\.html$ $1/plugin.php?id=$23&%1
</IfModule>



也是没有用。也试过nginx的规则。也没用。
allthebest 发表于 2017-5-23 06:18:52 | 显示全部楼层
本帖最后由 allthebest 于 2017-5-22 22:35 编辑

第一、Nginx伪静态规则及设置
/usr/local/nginx/conf/discuz.conf
在这个文件中添加脚本:
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;
rewrite ^([^\.]*)/([a-z]+[a-z0-9_]*)-([a-z0-9_\-]+)\.html$ $1/plugin.php?id=$2: $3 last;
然后在当前站点配置文件中include上面的文件。后重启NGINX就可以生效。
第二、Apache环境伪静态
这里直接在你的站点根目录下添加一个.htaccess文件。
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^topic-(.+)\.html$ portal.php?mod=topic&topic=$1&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^article-([0-9]+)-([0-9]+)\.html$ portal.php?mod=view&aid=$1&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^forum-(\w+)-([0-9]+)\.html$ forum.php?mod=forumdisplay&fid=$1&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ forum.php?mod=viewthread&tid=$1&extra=page\%3D$3&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^group-([0-9]+)-([0-9]+)\.html$ forum.php?mod=group&fid=$1&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^space-(username|uid)-(.+)\.html$ home.php?mod=space&$1=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^blog-([0-9]+)-([0-9]+)\.html$ home.php?mod=space&uid=$1&do=blog&id=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^archiver/(fid|tid)-([0-9]+)\.html$ archiver/index.php?action=$1&value=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^([a-z]+[a-z0-9_]*)-([a-z0-9_\-]+)\.html$ plugin.php?id=$1: $2&%1
这样再在网站后台设置伪静态规则就可以生效。
回复

使用道具 举报

60006873 发表于 2017-5-23 10:55:08 | 显示全部楼层
必须重起后生效
回复

使用道具 举报

crx349 发表于 2017-5-23 12:05:18 | 显示全部楼层
用apache的规则哦 .htaccess放网站根目录就好了
回复

使用道具 举报

 楼主| 天津站长吴敬宗 发表于 2017-5-23 12:50:29 | 显示全部楼层

一定要重启吗?
回复

使用道具 举报

 楼主| 天津站长吴敬宗 发表于 2017-5-23 15:27:26 | 显示全部楼层
crx349 发表于 2017-5-23 12:05
用apache的规则哦 .htaccess放网站根目录就好了

试过了,页面出现404
回复

使用道具 举报

dej.sf 发表于 2017-5-23 16:24:21 | 显示全部楼层
  1. RewriteBase /
复制代码

这个Base目录 根据你实际根目录结构修改了么?比如你如果论坛访问路径是/bbs/,那么这里也要跟着改
回复

使用道具 举报

 楼主| 天津站长吴敬宗 发表于 2017-5-23 16:43:01 | 显示全部楼层
dej.sf 发表于 2017-5-23 16:24
这个Base目录 根据你实际根目录结构修改了么?比如你如果论坛访问路径是/bbs/,那么这里也要跟着改

我的默认模板,不是BBS的。apache规则应该是正确的,apache日志没有发现错误信息,但是页面就是显示404
回复

使用道具 举报

crll 发表于 2017-5-23 16:47:54 | 显示全部楼层
  1. RewriteBase /
复制代码
如果目录是bbs  就改成:
  1. RewriteBase /bbs
复制代码


回复

使用道具 举报

60006873 发表于 2017-5-23 22:52:34 | 显示全部楼层
NGinx 这个伪静态是不一样的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-27 12:30 , Processed in 0.018957 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表