From f5c2808ff13d9b9dce9a6e2f2ea3989ef686c15c Mon Sep 17 00:00:00 2001 From: Ben Coburn Date: Wed, 5 Apr 2006 04:56:21 +0200 Subject: rewrite export URLs This patch rewrites export urls so that robots.txt can be used to request that some (or all) export types are ignored by robots when indexing the wiki. For example: User-agent: * Disallow: _export/ or for example: User-agent: * Disallow: _export/raw/ Note: This rewriting is only done when $conf['userewrite'] is set to '1' for using the rewrite rules from '.htaccess.dist'. darcs-hash:20060405025621-05dcb-b1b5f48681f78d75d25b1e75fab79346fcc8b84e.gz --- .htaccess.dist | 1 + inc/common.php | 37 +++++++++++++++++++++++++++++++++++++ inc/template.php | 4 ++-- 3 files changed, 40 insertions(+), 2 deletions(-) diff --git a/.htaccess.dist b/.htaccess.dist index 77a4b9579..268144d8a 100644 --- a/.htaccess.dist +++ b/.htaccess.dist @@ -16,6 +16,7 @@ #RewriteEngine on #RewriteRule ^_media/(.*) lib/exe/fetch.php?media=$1 [QSA,L] #RewriteRule ^_detail/(.*) lib/exe/detail.php?media=$1 [QSA,L] +#RewriteRule ^_export/([^/]+)/(.*) doku.php?do=export_$1&id=$2 [QSA,L] #RewriteRule ^$ doku.php [L] #RewriteCond %{REQUEST_FILENAME} !-f #RewriteCond %{REQUEST_FILENAME} !-d diff --git a/inc/common.php b/inc/common.php index 8af63002c..ca05bd3e7 100644 --- a/inc/common.php +++ b/inc/common.php @@ -314,6 +314,43 @@ function wl($id='',$more='',$abs=false,$sep='&'){ return $xlink; } +/** + * This builds a link to an alternate page format + * + * Handles URL rewriting if enabled. Follows the style of wl(). + * + * @author Ben Coburn + */ +function exportlink($id='',$format='raw',$more='',$abs=false,$sep='&'){ + global $conf; + if(is_array($more)){ + $more = buildURLparams($more,$sep); + }else{ + $more = str_replace(',',$sep,$more); + } + + $format = rawurlencode($format); + $id = idfilter($id); + if($abs){ + $xlink = DOKU_URL; + }else{ + $xlink = DOKU_BASE; + } + + if($conf['userewrite'] == 2){ + $xlink .= DOKU_SCRIPT.'/'.$id.'?do=export_'.$format; + if($more) $xlink .= $sep.$more; + }elseif($conf['userewrite'] == 1){ + $xlink .= '_export/'.$format.'/'.$id; + if($more) $xlink .= '?'.$more; + }else{ + $xlink .= DOKU_SCRIPT.'?do=export_'.$format.$sep.'id='.$id; + if($more) $xlink .= $sep.$more; + } + + return $xlink; +} + /** * Build a link to a media file * diff --git a/inc/template.php b/inc/template.php index bda0a7e4b..c1848dd79 100644 --- a/inc/template.php +++ b/inc/template.php @@ -161,8 +161,8 @@ function tpl_metaheaders($alt=true){ if($alt){ ptln('',$it); ptln('',$it); - ptln('',$it); - ptln('',$it); + ptln('',$it); + ptln('',$it); } // setup robot tags apropriate for different modes -- cgit v1.2.3