diff options
Diffstat (limited to 'www/go.php')
-rw-r--r-- | www/go.php | 48 |
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 |