技术人生

生如夏花之绚烂,死如秋叶之静美…

« 城市网站(论坛)的推广宣传建议“您的数据签名有错误,请重新提交或联系当地工行-10019”的解决方法 »

『原创亲测』PHPnow实现Discuz!伪静态URL Rewrite

  我电脑上的PHP环境用的是PHPnow,支持绿色软件嘛呵呵~~下午在处理Discuz!的URL Rewrite,就是伪静态嘛,你懂的。我用的是最新的Discuz!X1.5,后台的设置很简单,全局——优化设置——搜索引擎优化,由于我是在本机上做测试,我只勾选了“论坛主题列表页”和“论坛主题内容页”,这个没关系的,如下图:

Discuz!伪静态设置

  然后点击上方的“查看当前的 Rewrite 规则URL 静态化”,Discuz!已经帮你自动生成好Rewrite规则了,如下图:

Discuz!伪静态

  复制一下规则:

<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 ^(.*)/([a-z]+)-(.+)\.html$ $1/$2.php?rewrite=$3&%1
</IfModule>

  打开Apache的conf/httpd.conf,搜索“rewrite”,确保开启了rewrite模块,即“LoadModule rewrite_module modules/mod_rewrite.so”这一顶前面没有#号。PHPnow默认是开启的。

  找到“NameVirtualHost”,把它前面的#去掉,即开启它,写入:

NameVirtualHost 127.0.0.1:80

<VirtualHost 127.0.0.1:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot D:\Website\phpnow\htdocs
ServerName dummy-host.example.com
ErrorLog logs/dummy-host.example.com-error_log
CustomLog logs/dummy-host.example.com-access_log common

<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 ^(.*)/([a-z]+)-(.+)\.html$ $1/$2.php?rewrite=$3&%1
</IfModule>   //这一段是上面从Discuz!后台复制过来的。

</VirtualHost> 

  这里一定要注意路径!!!我一开始写成了D:\Website\phpnow,害我折腾了很久,应该是D:\Website\phpnow\htdocs。最后重启一下Apache:PnCp.cmd—23,OK了,PHPnow成功实现Discuz!伪静态!

Discuz!伪静态

如转载本站原创文章,请务必注明:[ 技术仓库 ] - http://www.hack0573.com

本文永久链接地址:http://www.hack0573.com/Website/21.html
  • quote 1.123
  • 找到“NameVirtualHost”,把它前面的#去掉,即开启它,写入:

    这个NameVirtualHost,在那?
  • 2011-3-13 13:15:12 回复该留言

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新技术

技术排行

搜寻技术

Copyright©技术仓库 2009-2010 版权所有 All Rights Reserved.

嘉兴学院南湖学院-计科N051 | Hack0573@msn.com我要啦免费统计