2

Any mailing that I send through CiviMail converts URLs to links in the form of:

http://mysite.org/sites/all/modules/civicrm/extern/url.php?u=193&qid=52

But when I visit this URL I get a white page with "Missing input parameters" and the address is http://mysite.org/sites/all/modules/civicrm/extern/url.php

Curiously I looked at some old CiviMail mailings and those URLs still work!

I don't think this is related to Missing Input Parameters Error

I'm running 4.6.3. Thanks for your expert insight and helpful suggestions.

  • Do your old mailings use q=123 instead of qid=123 by chance? Are you doing any URL rewriting via .htaccess files or your CMS? – Nicholai Jun 16 '15 at 17:54
  • No URL rewriting via .htaccess; I'm using nginx on default BOA. Both the working and non-working mailings use qid=123 – Link Swanson Jun 16 '15 at 21:58
  • Ah. I run some sites on that stack as well (coincidentally, I reported the original bug to get Civi click tracking working on BOA). Given that both your examples are HTTP; is there any chance it's trying to switch to HTTPS and losing the variables? Can you try hitting the link using http://dev.mysite.org/sites/all/modules/civicrm/extern/url.php?u=193&qid=52 to see if caching could be involved? – Nicholai Jun 16 '15 at 23:51
  • Hey! You're on to something there! Yes, the site is running under a BOA forced https redirect. When I use the site's dev URL I get Could not load the settings file at: /path/to/sites/all/modules/civicrm/../../../default/civicrm.settings.php and when I add https to the URL, it just redirects to the root home page, but doesn't give the Missing parameters error. Hmmm .. – Link Swanson Jun 17 '15 at 1:03
  • Has your BOA been upgraded lately? Their changelog for May has a generic "fixed CiviCRM issues and regressions" mention. Maybe instead of the .dev. url you could try adding noredis=1&nocache=1 to the end of the request? – Nicholai Jun 17 '15 at 2:17
3

It seems your host configuration is the problem, as it forces redirection from https to http and somehow lost the parameters in the convertion

Can you try to access the https version with the parameters?

https://mysite.org/sites/all/modules/civicrm/extern/url.php?u=193&qid=52

In any case, if you want to use https, be sure your configuration is set with https (CIVICRM_UF_BASEURL in your civicrm.settings.php), so it directly creates the right url and avoid a redirect

  • Thank you, I changed CIVICRM_UF_BASEURL to https:// but the links are still being created as http:// in the CiviMail body. However, now when I manually modify the CiviMail links to https and paste them in the browser, all is working fine! So I just need to figure out how to tell CiviMail to use https:// when constructing the tracked URLs. – Link Swanson Jun 17 '15 at 15:42
  • 2
    check the resource url configuration page too, just to be sure it's with https too. – Xavier Jun 17 '15 at 16:24
  • double-checked that resource URLs all have https:// and even switched on "Force Secure URLs (SSL) "—still CiviMail writes them all as http:// – Link Swanson Jun 17 '15 at 17:51
  • Does that happen for the /extern/url.php URLs, or for the ones that are translated? I'm looking int TrackableURL.php and it runs this: $redirect = $config->userFrameworkResourceURL . "extern/url.php?u=$id"; It also does some caching here, so maybe Civi cache is involved. – Nicholai Jun 17 '15 at 20:32
  • @Nicholai and @Xavier thanks for all of your very helpful insights. I discovered that my CIVICRM_UF_BASEURL was being overwritten by Aegir, of course. So I prevented that (temporarily) and everything works now. I just need to figure out how to protect my customizations to civicrm.settings.php from being dominated by Aegir ... any ideas there (off-topic) – Link Swanson Jun 17 '15 at 20:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.