立即注册
?找回密码
?立即注册

QQ登录

只需一步,快速开始

我逸网

我逸分享各类计算工具和资料
不再需要查找公式和数据

安逸

我逸预设各种计算条件和经验
结果只在少量调整之间

效率

将繁琐交给我逸
我用故

我逸

打印 上一主题 下一主题

[伪静态] Discuz腾迅云伪静态设置

[复制链接]
跳转到指定楼层
楼主
发表于 2017-2-21 21:03:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
安装了CentOS+Apache2.0+Discuz3.3,如下设置伪静态。
1、确认Apache是否已经正确加载mod_rewrite模块。
检查httpd.conf,如果代码LoadModule Rewrite_module modules/mod_Rewrite.so前有#,去掉。可以使用phpinfo确认是否已经正确加载此模块,如已加载,mod_rewrite会显示在Loaded Modules中。
2、策略配置。现有一个网站,根目录为/var/www/html,动态页面地址为/list.php?page=123&id=456,想要转为/list-123-456.html,在Apache中有两种方法配置,一是通过httpd.conf文件,二是通过.htaccess文件,使用正则表达式来匹配访问路径,并按照规则替换成指定的路径。
使用httpd.conf来配置rewrite策略:直接在httpd.conf中写入如下代码,如果网站是配置在VirtualHost中,则将这段代码加到对应的标签内:

# 输入:list-123-456.html 输出:list.php?page=123&id=456
RewriteEngine on
RewriteRule ^(.*)list-([0-9]+)-([0-9]+)\.html$ $1list.php?page=$1&id=$2

添加完成后重启httpd服务后即可生效。
使用.htaccess配置rewrite策略:
检查httpd.conf中的标签配置,确认AllowOverride配置为All,这样才能启用.htaccess文件:

Options FollowSymLinks
AllowOverride All

检查httpd.conf中的AccessFileName参数,确认为.htaccess:
AccessFileName .htaccess
在网站根目录下建立.htaccess文件,写入如下内容:
RewriteEngine on
RewriteRule ^(.*)list-([0-9]+)-([0-9]+)\.html$ $1list.php?page=$2&id=$3
保存后重启httpd服务即可生效

为何都按上面设置了缺还是无法静态化?
很有可能是因为别的目录设置项覆盖了标签内的选项,导致.htaccess文件没起作用。这个问题一般出现在网站根目录的Directory标签中,在这个例子中,可以检查标签内的AllowOverride参数是否设置为All。

.htaccess文件放在网站根目录,那子目录也可以实现伪静态吗?
.htaccess默认对所在目录下所有子目录生效,但是如果子目录中也放置了.htaccess文件,则该子目录下的访问规则以子目录中的.htaccess文件为准。

沙发
发表于 2018-9-1 17:18:34 | 只看该作者

国外uu,国产uu最新地址开放注册了,网站难找



iujlb03.com
板凳
发表于 2018-11-25 09:42:31 | 只看该作者
呦呦资源论坛开放注册了!!限时开放注册

92xll.com

Archiver|服务支持:DZ动力| ?

Powered by Discuz! X3.3? 2001-2013 Comsenz Inc.

Copyright ? 2016-2022 我逸网 cmd2d.com All Rights Reserved.
备案号:皖ICP备16004147号-1

beian 皖公网安备 34010302000278号

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