Contents |
[edit]
.htaccess & SEO
.htaccess file are used by apache to rewrite urls. This is very useful when doing an seo optimization. Some of you may have seen a couple of my sites where the modules are operating out side the /modules/ path this is done with a .htaccess file in the XOOPS_ROOT_PATH.
See .htaccess for more details
[edit]
.htaccess addtions
This is the edition you have to make to CBB to SEO the path.
RewriteRule ^forums/([a-zA-Z0-9\ \%\_\-]+)/([a-zA-Z0-9\ \%\_\-]+)/images/([a-zA-Z0-9\ \%\_\-]+)/([a-zA-Z0-9\ \%\_\-]+)/([a-zA-Z0-9\ \%\_\-]+)/(.*) modules/newbb/images/$3/$4/$5/$6 RewriteRule ^forums/([a-zA-Z0-9\ \%\_\-]+)/([a-zA-Z0-9\ \%\_\-]+)/images/([a-zA-Z0-9\ \%\_\-]+)/([a-zA-Z0-9\ \%\_\-]+)/(.*) modules/newbb/images/$3/$4/$5 RewriteRule ^forums/([a-zA-Z0-9\ \%\_\-]+)/([a-zA-Z0-9\ \%\_\-]+)/images/([a-zA-Z0-9\ \%\_\-]+)/(.*) modules/newbb/images/$3/$4 RewriteRule ^forums/([a-zA-Z0-9\ \%\_\-]+)/([a-zA-Z0-9\ \%\_\-]+)/images/(.*) modules/newbb/images/$3 RewriteRule ^forums/([a-zA-Z0-9\ \%\_\-]+)/images/([a-zA-Z0-9\ \%\_\-]+)/([a-zA-Z0-9\ \%\_\-]+)/([a-zA-Z0-9\ \%\_\-]+)/(.*) modules/newbb/images/$2/$3/$4/$5 RewriteRule ^forums/([a-zA-Z0-9\ \%\_\-]+)/images/([a-zA-Z0-9\ \%\_\-]+)/([a-zA-Z0-9\ \%\_\-]+)/(.*) modules/newbb/images/$2/$3/$4 RewriteRule ^forums/([a-zA-Z0-9\ \%\_\-]+)/images/([a-zA-Z0-9\ \%\_\-]+)/(.*) modules/newbb/images/$2/$3 RewriteRule ^forums/([a-zA-Z0-9\ \%\_\-]+)/images/(.*) modules/newbb/images/$2 RewriteRule ^forums/images/([a-zA-Z0-9\ \%\_\-]+)/([a-zA-Z0-9\ \%\_\-]+)/([a-zA-Z0-9\ \%\_\-]+)/(.*) modules/newbb/images/$1/$2/$3/$4 RewriteRule ^forums/images/([a-zA-Z0-9\ \%\_\-]+)/([a-zA-Z0-9\ \%\_\-]+)/(.*) modules/newbb/images/$1/$2/$3 RewriteRule ^forums/images/([a-zA-Z0-9\ \%\_\-]+)/(.*) modules/newbb/images/$1/$2 RewriteRule ^forums/images/(.*) modules/newbb/images/$1 RewriteRule ^forums/include/(.*) modules/newbb/include/$1 [L,NC,QSA] RewriteRule ^forums/([a-zA-Z0-9\ \%\_\-]+)/templates/(.*) modules/newbb/templates/$2 [L,NC,QSA] RewriteRule ^forums/([a-zA-Z0-9\ \%\_\-]+)/include/(.*) modules/include/templates/$2 [L,NC,QSA] RewriteRule ^forums/([a-zA-Z0-9\ \%\_\-]+)/([a-zA-Z0-9\ \%\_\-]+)/0,([0-9]+),([a-zA-Z0-9]+),([0-9]+),([0-9]+),([0-9]+),([a-zA-Z0-9\ \.\_\-]+),([a-zA-Z0-9\ \.\_\-]+)$ modules/newbb/viewforum.php?forum_name=$1&topic_name=$2&forum=$3&type=$4&mode=$5&since=$6&start=$7&sortorder=$8&sortname=$9 [L,NC,QSA] RewriteRule ^forums/([a-zA-Z0-9\ \%\_\-]+)/([a-zA-Z0-9\ \%\_\-]+)/([0-9]+),([0-9]+),([0-9]+),([0-9]+),([a-zA-Z0-9]+),([a-zA-Z0-9\ \%\_\-]+),([a-zA-Z0-9\ \%\_\-]+)$ modules/newbb/viewtopic.php?forum_name=$1&topic_name=$2&forum=$3&topic_id=$4&post_id=$5&start=$6&type=$7&mode=$8&move=$9 RewriteRule ^forums/([a-zA-Z0-9\ \%\_\-]+)/([a-zA-Z0-9\ \%\_\-]+)/$ modules/newbb/viewtopic.php?forum_name=$1&topic_name=$2 [L,NC,QSA] RewriteRule ^forums/([a-zA-Z0-9\ \%\_\-]+)/([a-zA-Z0-9\ \%\_\-]+)$ modules/newbb/viewtopic.php?forum_name=$1&topic_name=$2 [L,NC,QSA] RewriteRule ^forums/([a-zA-Z0-9\ \%\_\-]+)/([a-zA-Z0-9\ \%\_\-]+)/newtopic.php$ modules/newbb/newtopic.php RewriteRule ^forums/([a-zA-Z0-9\ \%\_\-]+)/([a-zA-Z0-9\ \%\_\-]+)/polls.php$ modules/newbb/polls.php RewriteRule ^forums/([a-zA-Z0-9\ \%\_\-]+)/([a-zA-Z0-9\ \%\_\-]+)/reply.php$ modules/newbb/reply.php RewriteRule ^forums/([a-zA-Z0-9\ \%\_\-]+)/([a-zA-Z0-9\ \%\_\-]+)/viewtopic.php$ modules/newbb/viewtopic.php RewriteRule ^forums/([a-zA-Z0-9\ \%\_\-]+)/([a-zA-Z0-9\ \%\_\-]+)/viewforum.php$ modules/newbb/viewforum.php$2 [L,NC,QSA] RewriteRule ^forums/([a-zA-Z0-9\ \%\_\-]+)/([a-zA-Z0-9\ \%\_\-]+)/search.php$ modules/newbb/search.php RewriteRule ^forums/([a-zA-Z0-9\ \%\_\-]+)/([a-zA-Z0-9\ \%\_\-]+)/ratethread.php$ modules/newbb/ratethread.php RewriteRule ^forums/([a-zA-Z0-9\ \%\_\-]+)/([a-zA-Z0-9\ \%\_\-]+)/post.php$ modules/newbb/post.php RewriteRule ^forums/([a-zA-Z0-9\ \%\_\-]+)/([a-zA-Z0-9\ \%\_\-]+)/polls.php$ modules/newbb/polls.php RewriteRule ^forums/([a-zA-Z0-9\ \%\_\-]+)/([a-zA-Z0-9\ \%\_\-]+)/search.php$ modules/newbb/search.php RewriteRule ^forums/([a-zA-Z0-9\ \%\_\-]+)/([a-zA-Z0-9\ \%\_\-]+)/edit.php$ modules/newbb/edit.php RewriteRule ^forums/([a-zA-Z0-9\ \%\_\-]+)/([a-zA-Z0-9\ \%\_\-]+)/delete.php$ modules/newbb/delete.php RewriteRule ^forums/([a-zA-Z0-9\ \%\_\-]+)/([a-zA-Z0-9\ \%\_\-]+)/votepolls.php$ modules/newbb/votepolls.php RewriteRule ^forums/([a-zA-Z0-9\ \%\_\-]+)/0,([0-9]+),([a-zA-Z0-9]+),([0-9]+),([0-9]+),([0-9]+),([a-zA-Z0-9\ \.\_\-]+),([a-zA-Z0-9\ \.\_\-]+)$ modules/newbb/viewforum.php?forum_name=$1&forum=$2&type=$3&mode=$4&since=$5&start=$6&sortorder=$7&sortname=$8 [L,NC,QSA] RewriteRule ^forums/([a-zA-Z0-9\ \%\_\-]+)$/ modules/newbb/viewforum.php?forum_name=$1 [L,NC,QSA] RewriteRule ^forums/([a-zA-Z0-9\ \%\_\-]+)$ modules/newbb/viewforum.php?forum_name=$1 [L,NC,QSA] RewriteRule ^forums/([a-zA-Z0-9\ \%\_\-]+)/newtopic.php$ modules/newbb/newtopic.php [L,NC,QSA] RewriteRule ^forums/([a-zA-Z0-9\ \%\_\-]+)/viewtopic.php$ modules/newbb/viewtopic.php$2 [L,NC,QSA] RewriteRule ^forums/([a-zA-Z0-9\ \%\_\-]+)/viewforum.php$ modules/newbb/viewforum.php$2 [L,NC,QSA] RewriteRule ^forums/([a-zA-Z0-9\ \%\_\-]+)/search.php$ modules/newbb/search.php?$2 [L,NC,QSA] RewriteRule ^forums/([a-zA-Z0-9\ \%\_\-]+)/post.php$ modules/newbb/post.php [L,NC,QSA] RewriteRule ^forums/([a-zA-Z0-9\ \%\_\-]+)/polls.php$ modules/newbb/polls.php RewriteRule ^forums/([a-zA-Z0-9\ \%\_\-]+)/search.php$ modules/newbb/polls.php RewriteRule ^forums/([a-zA-Z0-9\ \%\_\-]+)/polls.php$ modules/newbb/polls.php RewriteRule ^forums/([a-zA-Z0-9\ \%\_\-]+)/votepolls.php$ modules/newbb/votepolls.php RewriteRule ^forums/([a-zA-Z0-9\ \%\_\-]+)/([a-zA-Z0-9\ \%\_\-]+)/$ modules/newbb/viewtopic.php?forum_name=$1&topic_name=$2 [L,NC,QSA] RewriteRule ^forums/([a-zA-Z0-9\ \%\_\-]+)/ modules/newbb/viewforum.php?forum_name=$1 [L,NC,QSA] RewriteRule ^forums/([a-zA-Z0-9\ \%\_\-]+)/$ modules/newbb/$2 [L,NC,QSA] RewriteRule ^forums/viewcat.php$ modules/newbb/viewcat.php [L,NC,QSA] RewriteRule ^forums/viewall.php$ modules/newbb/viewall.php [L,NC,QSA] RewriteRule ^forums/viewall.php$ modules/newbb/viewall.php [L,NC,QSA] RewriteRule ^forums/viewtopic.php$ modules/newbb/viewtopic.php [L,NC,QSA] RewriteRule ^forums/viewforum.php$ modules/newbb/viewforum.php [L,NC,QSA] RewriteRule ^forums/search.php$ modules/newbb/search.php?$1 [L,NC,QSA] RewriteRule ^forums/index.php$ modules/newbb/index.php [L,NC,QSA] RewriteRule ^forums/$ modules/newbb/$1 [L,NC,QSA]
[edit]
module changes
[edit]
viewtopic.php
Insert at line 35:
$forum_name = isset($_GET['forum_name'])?sef($_GET['forum_name'],"_"):''; // ?
$topic_title = isset($_GET['topic_name'])?sef($_GET['topic_name'],"_"):''; // ?
if (strlen($forum_name)>0&&strlen($topic_title)>0){
$sql = "SELECT forum_id FROM ".$xoopsDB->prefix('bb_forums')." WHERE forum_name LIKE '".str_replace(array('\\_',"-"),"_",addslashes($forum_name))."'";
$ret = $xoopsDB->queryF($sql);
$rt = $xoopsDB->fetchArray($ret);
$forum_id = $rt['forum_id'];
//echo $sql;
$sql = "SELECT topic_id FROM ".$xoopsDB->prefix('bb_topics')." WHERE topic_title LIKE '".str_replace(array('\\_',"-"),"_",addslashes($topic_title))."' and forum_id = '$forum_id'";
$ret = $xoopsDB->queryF($sql);
$rt = $xoopsDB->fetchArray($ret);
$topic_id = $rt['topic_id'];
$sql = "SELECT post_id FROM ".$xoopsDB->prefix('bb_posts')." WHERE topic_id = '$topic_id' and forum_id = '$forum_id' order by post_time asc limit 1";
$ret = $xoopsDB->queryF($sql);
$rt = $xoopsDB->fetchArray($ret);
$post_id = $rt['post_id'];
$topic_id = isset($_GET['topic_id']) ? intval($_GET['topic_id']) : $topic_id;
$post_id = !empty($_GET['post_id']) ? intval($_GET['post_id']) : $post_id;
$forum_id = !empty($_GET['forum']) ? intval($_GET['forum']) : $forum_id;
$move = isset($_GET['move'])? strtolower($_GET['move']) : '';
$start = !empty($_GET['start']) ? intval($_GET['start']) : 0;
$type = (!empty($_GET['type']) && in_array($_GET['type'], array("active", "pending", "deleted")))? $_GET['type'] : "";
$mode = !empty($_GET['mode']) ? intval($_GET['mode']) : (!empty($type)?2:0);
} else {
$topic_id = isset($_GET['topic_id']) ? intval($_GET['topic_id']) : 0;
$post_id = !empty($_GET['post_id']) ? intval($_GET['post_id']) : 0;
$forum_id = !empty($_GET['forum']) ? intval($_GET['forum']) : 0;
$move = isset($_GET['move'])? strtolower($_GET['move']) : '0';
$start = !empty($_GET['start']) ? intval($_GET['start']) : 0;
$type = (!empty($_GET['type']) && in_array($_GET['type'], array("active", "pending", "deleted")))? $_GET['type'] : "0";
$mode = !empty($_GET['mode']) ? intval($_GET['mode']) : (!empty($type)?2:0);
if (($post_id)!=0){
$sql = "SELECT forum_id FROM ".$xoopsDB->prefix('bb_posts')." WHERE post_id = '$post_id'";
$ret = $xoopsDB->queryF($sql);
$rt = $xoopsDB->fetchArray($ret);
$forum_id = $rt['forum_id'];
}
$sql = "SELECT forum_name FROM ".$xoopsDB->prefix('bb_forums')." WHERE forum_id = '$forum_id'";
$ret = $xoopsDB->queryF($sql);
$rt = $xoopsDB->fetchArray($ret);
$forum_name = $rt['forum_name'];
if (($post_id)!=0){
$sql = "SELECT topic_id FROM ".$xoopsDB->prefix('bb_posts')." WHERE post_id = '$post_id'";
$ret = $xoopsDB->queryF($sql);
$rt = $xoopsDB->fetchArray($ret);
$topic_id = $rt['topic_id'];
}
$sql = "SELECT topic_title FROM ".$xoopsDB->prefix('bb_topics')." WHERE topic_id = '$topic_id'";
$ret = $xoopsDB->queryF($sql);
$rt = $xoopsDB->fetchArray($ret);
$topic_title = $rt['topic_title'];
header( "HTTP/1.1 301 Moved Permanently" );
header( "Location: ".XOOPS_URL."/forums/".sef($forum_name)."/".sef($topic_title)."/$forum_id,$topic_id,$post_id,$start,$type,$mode,$move");
}
[edit]
viewforum.php
Insert at line 34:
$forum_name = isset($_GET['forum_name'])?sef($_GET['forum_name'],"_"):''; // ?
if (strlen($forum_name)>0){
$sql = "SELECT forum_id FROM ".$xoopsDB->prefix('bb_forums')." WHERE forum_name LIKE '".str_replace(array('\\_',"-"),"_",addslashes($forum_name))."'";
$ret = $xoopsDB->queryF($sql);
$rt = $xoopsDB->fetchArray($ret);
$forum_id = $rt['forum_id'];
$forum_id = intval($_GET['forum']) ? intval($_GET['forum']) : $forum_id;
$type = (!empty($_GET['type']) && in_array($_GET['type'], array("active", "pending", "deleted", "digest", "unreplied", "unread")))? $_GET['type'] : "";
$mode = !empty($_GET['mode']) ? intval($_GET['mode']) : 0;
$mode = (!empty($type) && in_array($type, array("active", "pending", "deleted")))?2:$mode;
$since = isset($_GET['since']) ? intval($_GET['since']) : $xoopsModuleConfig["since_default"];
$startdate = empty($since)?0:(time() - newbb_getSinceTime($since));
$start = !empty($_GET['start']) ? intval($_GET['start']) : 0;
$sortorder = (!isset($_GET['sortorder']) || $_GET['sortorder'] != "ASC") ? "DESC" : "ASC";
$sortname = $_GET['sortname']!=0 ? $_GET['sortname'] : '';
if ( empty($forum_id) ) {
redirect_header(XOOPS_URL."/index.php", 2, _MD_ERRORFORUM);
exit();
}
} else {
if ( empty($_GET['forum']) ) {
redirect_header(XOOPS_URL."/index.php", 2, _MD_ERRORFORUM);
exit();
}
$forum_id = intval($_GET['forum']);
if (!empty($_GET['type'])){
$type = (!empty($_GET['type']) && in_array($_GET['type'], array("active", "pending", "deleted", "digest", "unreplied", "unread")))? $_GET['type'] : "";
} else {
$sql = "SELECT forum_name FROM ".$xoopsDB->prefix('bb_forums')." WHERE forum_id = '$forum_id'";
$ret = $xoopsDB->queryF($sql);
$rt = $xoopsDB->fetchArray($ret);
$forum_name = $rt['forum_name'];
$forum_id = intval($_GET['forum']) ? intval($_GET['forum']) : $forum_id;
$type = (!empty($_GET['type']) && in_array($_GET['type'], array("active", "pending", "deleted", "digest", "unreplied", "unread")))? $_GET['type'] : "0";
$mode = !empty($_GET['mode']) ? intval($_GET['mode']) : 0;
$mode = (!empty($type) && in_array($type, array("active", "pending", "deleted")))?2:$mode;
$since = isset($_GET['since']) ? intval($_GET['since']) : $xoopsModuleConfig["since_default"];
$start = !empty($_GET['start']) ? intval($_GET['start']) : 0;
$sortorder = (!isset($_GET['sortorder']) || $_GET['sortorder'] != "ASC") ? "DESC" : "ASC";
$sortname = $_GET['sortname'] ? $_GET['sortname'] : 0;
header( "HTTP/1.1 301 Moved Permanently" );
header( "Location: ".XOOPS_URL."/forums/".sef($forum_name)."/0,$forum_id,$type,$mode,$since,$start,$sortorder,$sortname");
exit;
}
}
[edit]
index.php
Insert at line 34
if (strpos(' '.$_SERVER['REQUEST_URI'],"modules/")){
header( "HTTP/1.1 301 Moved Permanently" );
header( "Location: ".XOOPS_URL."/forums/".str_replace(array("/modules/newbb/","index.php"),"",$_SERVER['REQUEST_URI']));
}

![[Main Page]](/modules/mediawiki/images/mediawiki.png)





