]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - index.php
Merge branch 'master' into testing
[quix0rs-gnu-social.git] / index.php
index 88e2aa0f09af3b3c95e5bd912d26dfeaccf25df0..2e74d38fb0ac29d46e01ab115727e93100680f0e 100644 (file)
--- a/index.php
+++ b/index.php
@@ -107,8 +107,27 @@ function checkMirror($action_obj, $args)
 
 function main()
 {
+    // fake HTTP redirects using lighttpd's 404 redirects
+    if (strpos($_SERVER['SERVER_SOFTWARE'], 'lighttpd') !== false) {
+        $_lighty_url = $base_url.$_SERVER['REQUEST_URI'];
+        $_lighty_url = @parse_url($_lighty_url);
+
+        if ($_lighty_url['path'] != '/index.php' && $_lighty_url['path'] != '/') {
+            $_lighty_path = preg_replace('/^'.preg_quote(common_config('site','path')).'\//', '', substr($_lighty_url['path'], 1));
+            $_SERVER['QUERY_STRING'] = 'p='.$_lighty_path;
+            if ($_lighty_url['query'])
+                $_SERVER['QUERY_STRING'] .= '&'.$_lighty_url['query'];
+            parse_str($_lighty_url['query'], $_lighty_query);
+            foreach ($_lighty_query as $key => $val) {
+                $_GET[$key] = $_REQUEST[$key] = $val;
+            }
+            $_GET['p'] = $_REQUEST['p'] = $_lighty_path;
+        }
+    }
+    $_SERVER['REDIRECT_URL'] = preg_replace("/\?.+$/", "", $_SERVER['REQUEST_URI']);
+
     // quick check for fancy URL auto-detection support in installer.
-    if (isset($_SERVER['REDIRECT_URL']) && ((dirname($_SERVER['REQUEST_URI']) . '/check-fancy') === $_SERVER['REDIRECT_URL'])) {
+    if (isset($_SERVER['REDIRECT_URL']) && (preg_replace("/^\/$/","",(dirname($_SERVER['REQUEST_URI']))) . '/check-fancy') === $_SERVER['REDIRECT_URL']) {
         die("Fancy URL support detection succeeded. We suggest you enable this to get fancy (pretty) URLs.");
     }
     global $user, $action;
@@ -165,7 +184,8 @@ function main()
 
     if (!$user && common_config('site', 'private') &&
         !in_array($action, array('login', 'openidlogin', 'finishopenidlogin',
-                                 'recoverpassword', 'api', 'doc', 'register'))) {
+                                 'recoverpassword', 'api', 'doc', 'register')) &&
+        !preg_match('/rss$/', $action)) {
         common_redirect(common_local_url('login'));
         return;
     }