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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

希望统一rewrite和生成的html

[复制链接]
littlehz 发表于 2009-5-15 16:10:38 | 显示全部楼层 |阅读模式
本帖最后由 littlehz 于 2009-5-18 10:22 编辑

以单篇文章页面为例:
ss7默认的高效率url形式是这样的http://www.aaa.com/index.php?action/viewnews/itemid-111
rewrite短URL模式是这样的http://www.aaa.com/viewnews-111.html
而如果生成了静态html,是http://www.aaa.com/html/11/n-111.html

如果我在后台设置打开apache rewrite模式,再生成html页面,但是html页面并没有全部生成的话。网站中不同文章或者分类下面会出现这三种URL,很混乱,如果让搜索引擎抓取的话,会认为URL地址经常改变或者同一内容做多个页面,网站会受到降分惩罚。

为什么rewrite模式不和生成的html  URL合并呢,只需在nginx或者apache或者iis中判断url对应的真实html文件是否存在,存在的话就直接由nginx返回生成的真实html文件,如果不存在,则rewrite至index.php处理。

例如nginx中这样的写法,apache可参照类似。
  1. if (-f $request_filename) {
  2.         break;
  3. }
  4. if (!-e $request_filename) {
  5.         rewrite ^/html/([0-9]+)/n-([0-9]+).html$ /index.php?action/viewnews/itemid-$2 last;
  6. }
复制代码
这样的rewrite规则就可以把原先的viewnews-111.html规则弃用,直接用/html/11/n-111.html来了,如果这个html真实存在,直接由nginx返回生成的真实html文件,如果不存在,则rewrite至index.php处理。

那ss7的php逻辑程序方面,只要后台设置开启了rewrite模式,修改php输出的单篇文章页面的url也为/html/11/n-111.html这样的完全静态html形式。就不会出现三种文章URL了。

虽说ss7是开源的,php程序可以自己修改,但是我找半天也没找到在哪修改原先生成的rewrite URL函数,没办法,指导手册太少了,要自己遍历子目录看那几百个php文件那么多行代码还是有点麻烦,时间不够。

以上只是建议,本来该发建议区,不过我的帐号没有建议区的权限,就先放这了。希望下一版本的ss能采纳这种url方式,把rewrite url和生成的静态html合并了
西楼萧声 发表于 2009-5-17 22:26:58 | 显示全部楼层
支持。我也觉得奇怪。为什么伪静与真静的地址不相同。
回复

使用道具 举报

 楼主| littlehz 发表于 2009-5-26 01:16:35 | 显示全部楼层
现在SS7的地址形式很乱,希望SS8中能把伪静态和生成HTML的URL完全统一,并可以在URL中含有SEO字词,不要从URL中只能看到ID而已
回复

使用道具 举报

koder 发表于 2009-5-31 17:32:31 | 显示全部楼层
别费心机了。不可能统一
回复

使用道具 举报

myes 发表于 2009-11-3 09:54:23 | 显示全部楼层
这就是我希望官方能做的  comsenz熟悉论坛却不懂cms
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-24 11:22 , Processed in 0.022762 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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