第一步 设置apache,让apache支持伪静态
1 打开Apache的配置文件httpd.conf
#LoadModule rewrite_module modules/mod_rewrite.so
2 把前面的 “#”去掉
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be ”All”, ”None”, or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride None
把 AllowOverride None 改为 AllowOverride Al
3让Apache支持.htacce
Options FollowSymLinks
AllowOverride None
修改为
Options FollowSymLinks
AllowOverride All
重启Apache即可以生效
通过php提供的phpinfo()函数查看环境配置,通过Ctrl+F查找到“Loaded Modules”,其中列出了所有apache2handler已经开启的模块,如果里面包括“mod_rewrite”,则已经支持,不再需要继续设置。
第二部在项目根目录下创建.htaccess文件
在要启用伪静态的 PHP 项目根目录下建立 .htaccess 文件在 .htaccess 文件中输入内容 <IfModule mod_rewrite.c> RewriteEngine on RewriteRule index.html$ index.php RewriteRule index-([1-9]+[0-9]*).html$ index.php?p=$1 RewriteRule ([a-z]{1,})-([0-9]{1,}).html$ index.php?action=$1&id=$2 </IfModule> 注释:RewriteEngine 为重写引擎开关,on为开启,off为关闭。RewriteRule 是路由转向规则,$ 之前路径为浏览器中要输入路径,这里可以用正则表达式表达。$+空格 后路径为后台实际转向路径, 转向后台实际路径时可以传参数,例子里的后台页面可以用$_GET['p'] $_GET['action'] $_GET['id'] 来接收 $1 代表浏览器路径中输入的第一个正则表达式的值,以此类推,$2代表第二个正则表达式的值 RewriteRule 路由转向规则里正则表达式用括号 () 括起来例子所在项目为test在项目下 index.php 页面内写入内容 <?php if ($_GET ['p']) { echo "p : " . $_GET ['p'];} if ($_GET ['action']) { echo "action : " . $_GET ['action'];} if ($_GET ['id']) { echo "id : " . $_GET ['id'];} ?> 在浏览器中输入 http://localhost/test/index.html http://localhost/test/index-99.html http://localhost/test/page-18.html 都会转向 http://localhost/test/index.php 页面 并且依次 http://localhost/test/index.html 页面什么都不显示 http://localhost/test/index-99.html 页面显示 p : 99 http://locahost/test/page-18.html 页面显示 action : pageid : 18
这里在xampp v3.2.4是上没有第3步的Options FollowSymLinks,只用改前两处就可以了。
在这里开启
开启后其它地方都正常,就首页4格中的最新回复有问题,于是安装
柒瑞首页四格
,这个也是免费的
用过discuz帖子中“复制链接”功能的都知道点击复制链接后得到的链接是这样形式:
hdtune硬盘检测详解教程
http://www.qiankoo.com/forum.php?mod=viewthread&tid=818&fromuid=1
(出处: 千酷论坛)
为什么链接是这样的动态地址,而不是伪静态的地址呢?我们很容易发现url地址中有“fromuid=1”通俗的理解为“来自uid1”。
到这里我们应该能够理解,这其实discuz“访问推广”的功能,别人通过这个链接访问了这个帖子,那么uid为1的这个用户就会得到一定的积分。
既然我们知道了原理,那么你应该能够知道思路,那么就是关闭“访问推广”功能,我们通过后台会发现推广访问功能是关不了的,那么我们可以另辟蹊径,那就是把访问推广获得的积分设置为“0”,这样,这个访问推广功能就会变得无意义,系统会自动把“复制链接“变为伪静态地址。
OK,我们已经知道了所有来龙去脉,那么就开始把。
步骤:
进入后台,依次找到:全局——积分设置——积分策略,将”访问推广“一行全部设置为”0“,保存即可,接下来找一篇帖子试试吧。
Discuz x3“复制链接”显示伪静态网址的修改方法
时间:2019-01-02 15:57作者:cola man
解决办法一:(不用修改任何文件)
就是在后台-全局-积分设置-积分策略:里面的“访问推广”和“注册推广”的分值全部设置为0
然后更新缓存!看看,是不是伪静态了!~~但是这样的弊端就是,不能开启推广送积分了!所以我找到了第二种修改方法!
解决方法二:
(简单修改文件,但是同样可以开启推广积分功能!)
1.打开网站安装目录下的template\default\forum\viewthread.htm文件(先备份这个文件!)
2.找到如下代码
<a href="forum.php?mod=viewthread&tid=$_G[tid]$fromuid" title="{lang share_url_copy_comment}">[{lang share_url_copy}]</a>
1.直接去掉:$fromuid 保存!(建议这样修改!这个成功了)
2.或者这样修改(两者只修改一种方法):
<a href="thread-$_G[tid]-1-1.html" title="{lang share_url_copy_comment}">[{lang share_url_copy}]</a>
文章评论