summaryrefslogtreecommitdiff
path: root/inc
diff options
context:
space:
mode:
authorBen Coburn <btcoburn@silicodon.net>2006-04-05 04:56:21 +0200
committerBen Coburn <btcoburn@silicodon.net>2006-04-05 04:56:21 +0200
commitf5c2808ff13d9b9dce9a6e2f2ea3989ef686c15c (patch)
tree267ee76eed45da9b355ae424302446c0b16fcd4d /inc
parentd519720692b97f1c1705a3cce804749068fea697 (diff)
downloadrpg-f5c2808ff13d9b9dce9a6e2f2ea3989ef686c15c.tar.gz
rpg-f5c2808ff13d9b9dce9a6e2f2ea3989ef686c15c.tar.bz2
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
Diffstat (limited to 'inc')
-rw-r--r--inc/common.php37
-rw-r--r--inc/template.php4
2 files changed, 39 insertions, 2 deletions
diff --git a/inc/common.php b/inc/common.php
index 8af63002c..ca05bd3e7 100644
--- a/inc/common.php
+++ b/inc/common.php
@@ -315,6 +315,43 @@ function wl($id='',$more='',$abs=false,$sep='&amp;'){
}
/**
+ * This builds a link to an alternate page format
+ *
+ * Handles URL rewriting if enabled. Follows the style of wl().
+ *
+ * @author Ben Coburn <btcoburn@silicodon.net>
+ */
+function exportlink($id='',$format='raw',$more='',$abs=false,$sep='&amp;'){
+ 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
*
* Will return a link to the detail page if $direct is false
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('<link rel="alternate" type="application/rss+xml" title="Recent Changes" href="'.DOKU_BASE.'feed.php" />',$it);
ptln('<link rel="alternate" type="application/rss+xml" title="Current Namespace" href="'.DOKU_BASE.'feed.php?mode=list&amp;ns='.$INFO['namespace'].'" />',$it);
- ptln('<link rel="alternate" type="text/html" title="Plain HTML" href="'.wl($ID,'do=export_xhtml').'" />',$it);
- ptln('<link rel="alternate" type="text/plain" title="Wiki Markup" href="'.wl($ID, 'do=export_raw').'" />',$it);
+ ptln('<link rel="alternate" type="text/html" title="Plain HTML" href="'.exportlink($ID, 'xhtml').'" />',$it);
+ ptln('<link rel="alternate" type="text/plain" title="Wiki Markup" href="'.exportlink($ID, 'raw').'" />',$it);
}
// setup robot tags apropriate for different modes