mark: A photo of Mark kneeling on top of the Taal Volcano in the Philippines. It was a long hike. (Default)
Mark Smith ([staff profile] mark) wrote in [site community profile] changelog2009-06-12 08:33 pm

[dw-free] http://bugs.dwscoalition.org/show_bug.cgi?id=1133

[commit: http://hg.dwscoalition.org/dw-free/rev/7351b0b64242]

http://bugs.dwscoalition.org/show_bug.cgi?id=1133

Add ability to specify alternate domains e.g. dreamwidth.net, dreamwidth.com
which redirect back to the main site domain.

Patch by [personal profile] exor674.

Files modified:
  • cgi-bin/Apache/LiveJournal.pm
  • doc/config-private.pl.txt
--------------------------------------------------------------------------------
diff -r 94480661f601 -r 7351b0b64242 cgi-bin/Apache/LiveJournal.pm
--- a/cgi-bin/Apache/LiveJournal.pm	Fri Jun 12 17:58:07 2009 +0000
+++ b/cgi-bin/Apache/LiveJournal.pm	Fri Jun 12 20:33:03 2009 +0000
@@ -351,6 +351,34 @@ sub trans
         my $url = "$LJ::SITEROOT$uri";
         $url .= "?" . $args if $args;
         return redir($r, $url);
+    }
+
+    # handle alternate domains
+    if ( $host ne $LJ::DOMAIN && $host ne $LJ::DOMAIN_WEB ) {
+        my $which_alternate_domain = undef;
+        foreach my $other_host ( @LJ::ALTERNATE_DOMAINS ) {
+            $which_alternate_domain = $other_host
+                if $host =~ m/\Q$other_host\E$/i;
+        }
+
+        if ( defined $which_alternate_domain ) {
+            my $root = $is_ssl ? "https://" : "http://";
+            $host =~ s/\Q$which_alternate_domain\E$/$LJ::DOMAIN/i;
+
+            # do $LJ::DOMAIN -> $LJ::DOMAIN_WEB here, to save a redirect.
+            if ( $LJ::DOMAIN_WEB && $host eq $LJ::DOMAIN ) {
+                $host = $LJ::DOMAIN_WEB;
+            }
+            $root .= "$host/";
+
+            if ( $r->method eq "GET" ) {
+                my $url = "$root$uri";
+                $url .= "?" . $args if $args;
+                return redir( $r, $url );
+            } else {
+                return redir( $r, $root );
+            }
+        }
     }
 
     # check for sysbans on ip address
diff -r 94480661f601 -r 7351b0b64242 doc/config-private.pl.txt
--- a/doc/config-private.pl.txt	Fri Jun 12 17:58:07 2009 +0000
+++ b/doc/config-private.pl.txt	Fri Jun 12 20:33:03 2009 +0000
@@ -33,6 +33,14 @@
     # when an entry is posted; hash instead of array for efficiency
     %OFFICIAL_JOURNALS = (
         news => 1,
+    );
+
+    # list of alternate domains that point to your site.
+    @ALTERNATE_DOMAINS = (
+        'ljsite.org',
+        'ljsite.net',
+        'ljsite.co.uk',
+        'ljsite.tld',
     );
 
     # configuration/ID for statistics tracker modules which apply to
--------------------------------------------------------------------------------

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org