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

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中,则将这段代码加到对应的<VirtualHost hostname><VirtualHost>标签内:
<IfModule mod_rewrite.c>
# 输入: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
</IfModule>
添加完成后重启httpd服务后即可生效。
使用.htaccess配置rewrite策略:
检查httpd.conf中的<Directory />标签配置,确认AllowOverride配置为All,这样才能启用.htaccess文件:
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
检查httpd.conf中的AccessFileName参数,确认为.htaccess:
AccessFileName .htaccess
在网站根目录下建立.htaccess文件,写入如下内容:
RewriteEngine on
RewriteRule ^(.*)list-([0-9]+)-([0-9]+)\.html$ $1list.php?page=$2&id=$3
保存后重启httpd服务即可生效

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

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

回复 收藏

使用道具 举报

发表于 2018-9-1 17:18:34 | 显示全部楼层

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



iujlb03.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号

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