阿里云主机搭建discuz伪静态规则怎么写
源码专家在帮客户处理linux服务器的时候发现的问题,有不少Discuz在配置Discuz伪静态的时候用的是阿里云的服务器,不懂的如何解决伪静态。下面由源码专家技术写一下教程,希望给帮到更多的Discuz爱好者。
解决阿里云linux系统主机启用Discuz伪静态教程
由于搜索引擎偏爱于收录静态页(html),因此目前越来越多的网站使用了伪静态urlrewrite技术,下面介绍下如何在万网linux翔云主机上启用伪静态。
1.服务器初始安装的apache默认已经内建了mod_rewrite模块,不需要重复加载.so文件,服务器默认支持伪静态功能。
2.在apache配置文件中加入以下配置:
< Directory /虚拟站点路径>
AllowOverride All
< /Directory>
其中虚拟站点路径需要替换为您的站点的目录文件夹的路径,如/data/home/website2等。
例如:
< Directory /data/home/website2>
AllowOverride All
< /Directory>
如果是默认站点/var/www/htdocs的话,由于已经有了< Directory>的配置,因此不能重复添加,找到默认站点的AllowOverride None 修改成 AllowOverride All 即可。
修改完毕后需要重启apache才能生效:
# /var/www/bin/apachectl restart
至此对应的站点已经可以支持伪静态了,站点目录下的.htaccess文件将起到对应的静态到动态的转换作用。
附AllowOverride的相关参数说明
http://httpd.apache.org/docs/2.0/mod/core.html#allowoverride
静态文件默认路径一般在/var/www/apache/httpd.conf
或者在 /usr/local/apache2/etc/ vi httpd.conf
这两个路径都找一下。
以上增加不生效同时也可以在.htaccess文件前面增加
<FilesMatch "\.(bak|inc|lib|sh|tpl|lbi|dwt)$"> order deny,allow deny from all</FilesMatch>
如Discuz静态规则
<FilesMatch "\.(bak|inc|lib|sh|tpl|lbi|dwt)[ DISCUZ_CODE_0 ]quot;>
order deny,allow
deny from all
</FilesMatch>
# 将 RewriteEngine 模式打开
RewriteEngine On
# 修改以下语句中的 /discuz 为您的论坛目录地址,如果程序放在根目录中,请将 /discuz 修改为 /
RewriteBase /
# Rewrite 系统规则请勿修改
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^topic-(.+)\.html$ portal.php?mod=topic&topic=$1&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^article-([0-9]+)-([0-9]+)\.html$ portal.php?mod=view&aid=$1&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^forum-(\w+)-([0-9]+)\.html$ forum.php?mod=forumdisplay&fid=$1&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ forum.php?mod=viewthread&tid=$1&extra=page\%3D$3&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^group-([0-9]+)-([0-9]+)\.html$ forum.php?mod=group&fid=$1&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^space-(username|uid)-(.+)\.html$ home.php?mod=space&$1=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^blog-([0-9]+)-([0-9]+)\.html$ home.php?mod=space&uid=$1&do=blog&id=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^archiver/(fid|tid)-([0-9]+)\.html$ archiver/index.php?action=$1&value=$2&%1
参考来自:http://www.ymzj.cn/thread-79343-1-1.html