aboutsummaryrefslogtreecommitdiff
path: root/www/go.php
diff options
context:
space:
mode:
Diffstat (limited to 'www/go.php')
-rw-r--r--www/go.php48
1 files changed, 48 insertions, 0 deletions
diff --git a/www/go.php b/www/go.php
new file mode 100644
index 0000000..6a36ba9
--- /dev/null
+++ b/www/go.php
@@ -0,0 +1,48 @@
+<?php
+/**
+ * SemanticScuttle - your social bookmark manager.
+ *
+ * Short URL redirection service.
+ * Just call http://example.org/go/shortname
+ * to get redirected to it. Helpful to get static URLs for
+ * moving targets.
+ *
+ * PHP version 5.
+ *
+ * @category Bookmarking
+ * @package SemanticScuttle
+ * @author Christian Weiske <cweiske@cweiske.de>
+ * @license GPL http://www.gnu.org/licenses/gpl.html
+ * @link http://sourceforge.net/projects/semanticscuttle
+ */
+$httpContentType = false;
+require_once 'www-header.php';
+
+if (!$GLOBALS['shorturl']) {
+ header('HTTP/1.0 500 Internal Server Error');
+ header('Content-Type: text/plain');
+ echo 'Short URL service deactivated';
+ exit();
+}
+
+if (!isset($_SERVER['PATH_INFO'])) {
+ header('HTTP/1.0 400 Bad Request');
+ header('Content-Type: text/plain');
+ echo 'Short URL name missing';
+ exit();
+}
+
+list($url, $short) = explode('/', $_SERVER['PATH_INFO']);
+
+$bs = SemanticScuttle_Service_Factory::get('Bookmark');
+$bookmark = $bs->getBookmarkByShortname($short);
+if ($bookmark === false) {
+ header('HTTP/1.0 404 Not found');
+ header('Content-Type: text/plain');
+ echo 'No bookmark found with short name of: ' . $short;
+ exit();
+}
+
+header('HTTP/1.0 302 Found');
+header('Location: ' . $bookmark['bAddress']);
+?> \ No newline at end of file