Page MenuHomePhabricator

Continual redirect loop on install
Closed, ResolvedPublic

Description

Steps to Reproduce:

  • Follow the setup/configuration guidelines to install fabricator at a domain like phabricator.mydomain.ddns.net.
  • Rewrite rules dictate:
RewriteEngine On
RewriteRule ^/rsrc/(.*)         -                       [L,QSA]
RewriteRule ^/favicon.ico       -                       [L,QSA]
RewriteRule ^(.*)$           /index.php?__path__=$1  [B,L,QSA]
  • Received message, "Request exceeded the limit of 10 internal redirects due to probable configuration error."

I believe the installation instructions should be updated to cover instances like this. I don't quite understand rewrite rules as well as I'd like so it took some time debugging this problem. Perhaps there is a better way to rewrite the last rule which accounts for cases like mine.

Thanks,
Ian

Event Timeline

This task can be closed.

For future people who may run into this, what was the issue?

I'm still not sure, but I cannot verify like I thought before it was related to the rewrite rules. My setup is on a device running OS X Server. I have the phabricator installation at phabricator.mydomain.ddns.net, but I am still continuing to see the "Request exceeded the limit of 10 internal redirects due to probable configuration error."

I run dev on a local OS X machine, basically I just manually set a DNS inside with /etc/hosts in my house (dev.macbook.local) on each machine I want to access it on. I'm curious if its a ddns issue.

That's how I originally had it configured, but now I'm using OS X Server. When installed it stops using the default /etc/apache2 configuration and instead uses /Library/Server/Web/Config/. I have a few other websites configured on my home vpn which are accessible via site1.mydomain.ddns.net and site2.mydomain.ddns.net. I have the phabricator alias record configured the same way.

I see about 10 records in succession in the access logs which make it seem like it's not redirecting to /index.php?path=$1.

phabricator.mydomain.ddns.net 127.0.0.1 - - [14/Feb/2016:14:22:03 -0600] "GET / HTTP/1.1" 500 611 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/601.4.4 (KHTML, like Gecko) Version/9.0.3 Safari/601.4.4"
chad renamed this task from Installation with ddns url to Continual redirect loop on install.Feb 14 2016, 8:33 PM

You can also just replace index.php in webroot with <?php var_dump($_REQUEST); ?> to rule out any hanky-panky from Phabricator.

T10301 and T9469 are related issues, but neither had any resolution. Would love to know what causes this on the Apache side, if we can improve documentation, etc.

So I've determined it is a conflict between my .htaccess rewrite rules and some other apache/server configuration. I'm not exactly sure what's happening, but here is an update on the behavior.

.htaccess

RewriteEngine on
RewriteRule ^/rsrc/(.*)     -                       [L,QSA]
RewriteRule ^/favicon.ico   -                       [L,QSA]
RewriteRule ^(.*)$          /index.php?__path__=$1  [B,END,QSA]

I've modified the last rule's flag from L to END. This prevents any further matches. When I do this I receive a new error: "Request parameter 'path' is set, but empty. Your rewrite rules are not configured correctly. The 'path' should always begin with a '/'." What this tells me is that that particular rewrite rule is being triggered recursively resulting in an infinite redirect.

Any ideas what other apache/server configurations could be conflicting with the rewrite rules to cause it to loop indefinitely?

Are you writing the Phabricator RewriteRule in .htaccess or httpd.conf (or similar)

I was using .htaccess (I noticed the linked article said to remove the leading '/'. I finally got things working. I had to move my rewrite rules to the .conf found in /Library/Server/Web/Config/sites/mysite.conf. This is specific to macs running the OS X Server application. Hopefully if anyone else is using this setup, they can benefit from this.

I also had issues because I am using https. I have a virtual host setup at http which is suppose to forward users to the https version. I had to add [env=proto:https] to the rewrite rule for the http virtual host to retain the https protocol.

In addition, I had to set the phabricator base uri to be https.

chad claimed this task.

Cool, glad to here its working and thanks for the confirmation.