On Jul 4, 2006, at 3:40 PM, Jason Flatt wrote:
Try it w/o the leading slash. If your $base_url is setup correctly (and 4.7 is supposed to handle that for you), it should work with either path. If that still doesn't work, try setting and uncommenting the $base_url variable in your sites/default/settings.php file.
That doesn't work either. I do have $base_url set correctly, and I assume that is why, for example, menus that point to "node/99" work fine when moved to a site with a different $base_url. However, I don't think links in content are affected in any way by $base_url. In fact, they can't be unless Drupal is doing filtering of <a href="..."> tags by default (which would be a surprise to me).
Suppose I have content in, say, node 10 that contains the following link <a href="node/99">link</a>. These are simple relative URLs that are turned into absolute URLs by the browser, resulting in the following:
Dev site: $base_url = "http://example.com/dev"; node 10 at: http://example.com/dev/node/10 link points to: http://example.com/dev/node/node/99
Production site: $base_url = "http://example.com/"; node 10 at: http://example.com/node/10 link points to: http://example.com/node/node/99
In both cases, the link is obviously broken.
To be fair, it appears that these relative URLs *did* work in Drupal 4.6, because it (ab)used a base tag that was added to every page pointing to the root URL of your site. Since this (ab)use of base was fixed in 4.7, relative URLs no longer work. [1]
I'm coming to the conclusion that it requires an input filter to convert relative internal links into absolute URLs by using $base_url.
Any other possibilities?
Ray
[1] According to http://drupaltutorials.com/ drupal_theme_development#differences_between_drupal_4.6_and_4.7