diff options
author | Dries Buytaert <dries@buytaert.net> | 2003-03-08 21:10:22 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2003-03-08 21:10:22 +0000 |
commit | c1734532f726e74958e061d81ce05570dca1af7d (patch) | |
tree | db02aea21ce495b126fcb9439e47ca8abf6f2b20 | |
parent | a0deb476faf8d35794c8e1286037ced22959bd07 (diff) | |
download | brdo-c1734532f726e74958e061d81ce05570dca1af7d.tar.gz brdo-c1734532f726e74958e061d81ce05570dca1af7d.tar.bz2 |
- Made rewrite_old_url() distinguish between absolute and relative URLs.
In case of a absolute URL it will try not to rewrite outgoing/external
URLs.
-rw-r--r-- | includes/common.inc | 56 |
1 files changed, 47 insertions, 9 deletions
diff --git a/includes/common.inc b/includes/common.inc index ce9dc789e..54e2bf703 100644 --- a/includes/common.inc +++ b/includes/common.inc @@ -464,6 +464,12 @@ function filter($text) { function rewrite_old_urls($text) { + global $base_url; + + $end = substr($base_url, 12); + + print "$end"; + /* ** This is a *temporary* filter to rewrite old-style URLs to new-style ** URLs (clean URLs). Currently, URLs are being rewritten dynamically @@ -473,23 +479,55 @@ function rewrite_old_urls($text) { */ if (variable_get("clean_url", "0") == "0") { + /* + ** Relative URLs: + */ + + // rewrite 'node.php?id=<number>[&cid=<number>]' style URLs: + $text = eregi_replace("\"(node)\.php\?id=([[:digit:]]+)(&cid=)?([[:digit:]]*)", "\"?q=\\1/view/\\2/\\4", $text); + + // rewrite 'module.php?mod=<name>{&<op>=<value>}' style URLs: + $text = ereg_replace("\"module\.php\?(&?[[:alpha:]]+=([[:alnum:]]+))(&?[[:alpha:]]+=([[:alnum:]]+))(&?[[:alpha:]]+=([[:alnum:]]+))", "\"?q=\\2/\\4/\\6" , $text); + $text = ereg_replace("\"module\.php\?(&?[[:alpha:]]+=([[:alnum:]]+))(&?[[:alpha:]]+=([[:alnum:]]+))", "\"?q=\\2/\\4", $text); + $text = ereg_replace("\"module\.php\?(&?[[:alpha:]]+=([[:alnum:]]+))", "\"?q=\\2", $text); + + /* + ** Absolute URLs: + */ + // rewrite 'node.php?id=<number>[&cid=<number>]' style URLs: - $text = eregi_replace("(node)\.php\?id=([[:digit:]]+)(&cid=)?([[:digit:]]*)", "?q=\\1/view/\\2/\\4", $text); + $text = eregi_replace("$end/(node)\.php\?id=([[:digit:]]+)(&cid=)?([[:digit:]]*)", "$end/?q=\\1/view/\\2/\\4", $text); // rewrite 'module.php?mod=<name>{&<op>=<value>}' style URLs: - $text = ereg_replace("module\.php\?(&?[[:alpha:]]+=([[:alnum:]]+))(&?[[:alpha:]]+=([[:alnum:]]+))(&?[[:alpha:]]+=([[:alnum:]]+))", "?q=\\2/\\4/\\6" , $text); - $text = ereg_replace("module\.php\?(&?[[:alpha:]]+=([[:alnum:]]+))(&?[[:alpha:]]+=([[:alnum:]]+))", "?q=\\2/\\4" , $text); - $text = ereg_replace("module\.php\?(&?[[:alpha:]]+=([[:alnum:]]+))", "?q=\\2" , $text); + $text = ereg_replace("$end/module\.php\?(&?[[:alpha:]]+=([[:alnum:]]+))(&?[[:alpha:]]+=([[:alnum:]]+))(&?[[:alpha:]]+=([[:alnum:]]+))", "$end/?q=\\2/\\4/\\6" , $text); + $text = ereg_replace("$end/module\.php\?(&?[[:alpha:]]+=([[:alnum:]]+))(&?[[:alpha:]]+=([[:alnum:]]+))", "$end/?q=\\2/\\4", $text); + $text = ereg_replace("$end/module\.php\?(&?[[:alpha:]]+=([[:alnum:]]+))", "\"$end/?q=\\2", $text); } else { + /* + ** Relative URLs: + */ + // rewrite 'node.php?id=<number>[&cid=<number>]' style URLs: - $text = eregi_replace("(node)\.php\?id=([[:digit:]]+)(&cid=)?([[:digit:]]*)", "\\1/view/\\2/\\4", $text); + $text = eregi_replace("\"(node)\.php\?id=([[:digit:]]+)(&cid=)?([[:digit:]]*)", "\"\\1/view/\\2/\\4", $text); // rewrite 'module.php?mod=<name>{&<op>=<value>}' style URLs: - $text = ereg_replace("module\.php\?(&?[[:alpha:]]+=([[:alnum:]]+))(&?[[:alpha:]]+=([[:alnum:]]+))(&?[[:alpha:]]+=([[:alnum:]]+))", "\\2/\\4/\\6" , $text); - $text = ereg_replace("module\.php\?(&?[[:alpha:]]+=([[:alnum:]]+))(&?[[:alpha:]]+=([[:alnum:]]+))", "\\2/\\4" , $text); - $text = ereg_replace("module\.php\?(&?[[:alpha:]]+=([[:alnum:]]+))", "\\2" , $text); - } + $text = ereg_replace("\"module\.php\?(&?[[:alpha:]]+=([[:alnum:]]+))(&?[[:alpha:]]+=([[:alnum:]]+))(&?[[:alpha:]]+=([[:alnum:]]+))", "\"\\2/\\4/\\6", $text); + $text = ereg_replace("\"module\.php\?(&?[[:alpha:]]+=([[:alnum:]]+))(&?[[:alpha:]]+=([[:alnum:]]+))", "\"\\2/\\4", $text); + $text = ereg_replace("\"module\.php\?(&?[[:alpha:]]+=([[:alnum:]]+))", "\"\\2", $text); + + /* + ** Absolute URLs: + */ + + // rewrite 'node.php?id=<number>[&cid=<number>]' style URLs: + $text = eregi_replace("$end/(node)\.php\?id=([[:digit:]]+)(&cid=)?([[:digit:]]*)", "$end/\\1/view/\\2/\\4", $text); + + // rewrite 'module.php?mod=<name>{&<op>=<value>}' style URLs: + $text = ereg_replace("$end/module\.php\?(&?[[:alpha:]]+=([[:alnum:]]+))(&?[[:alpha:]]+=([[:alnum:]]+))(&?[[:alpha:]]+=([[:alnum:]]+))", "$end/\\2/\\4/\\6", $text); + $text = ereg_replace("$end/module\.php\?(&?[[:alpha:]]+=([[:alnum:]]+))(&?[[:alpha:]]+=([[:alnum:]]+))", "$end/\\2/\\4", $text); + $text = ereg_replace("$end/module\.php\?(&?[[:alpha:]]+=([[:alnum:]]+))", "$end/\\2", $text); +} return $text; } |