| Random Page
Some Meatball pages are weird redirection links to other pages.
- Edits to the page will actually edit the redirected page. So if someone "deletes" your page by adding a redirect tag at the front, you may not be able to figure out how to put it back again.
- A search for "redirect" will turn up pages that don't apparently contain the word. (Which is what I found when I tried to research the feature.)
RedirectedPage is a sample page that is redirected. To undo the redirect, type in http://www.usemod.com/cgi-bin/mb.pl?action=edit&id=RedirectedPage
Or, more easily, edit any page, then change the ID in the URL to the desired page.
Also, if you want to browse the old page, you can type http://www.usemod.com/cgi-bin/mb.pl?action=rebrowse&id=RedirectedPage
These samples work now. The "#" character for features like "#REDIRECT" might change in the future (because "#" is now used for numbered lists).
Use a bang!!! instead.
Even better, use an @ symbol. Form = function, function = form. Also, the character width of an @ as compared to an ! means it won't disappear into the left margin.
Why not just use PageRedirect? Compare the use of DeletedPage.
- I wrote the #REDIRECT code, and I don't like using page names for internal functions. SunirShah does like page names, and he wrote the page deletion code. I don't plan on changing this code for UseModWiki 1.1, and I don't plan any future releases past 1.1. --CliffordAdams
[June 19, 2000] Meatball/UseModWiki
was changed to add a short warning above the title when a page is redirected. (It can tell because the "action" is "rebrowse".) This makes redirections much more obvious. The discussion that prompted this is below:
- Redirect from another page - wouldn't it be cooler if it told us which page? With a link back, that wouldn't redirect? -- DaveHarris
- I think I can do that. The redirect code was getting a bit icky anyway, and I think I see how to do this and clean it up a bit. (The "rebrowse" shouldn't be a separate action--it should be just another parameter to the browse action. The ID of the old page can be passed as another parameter.) --CliffordAdams
- If you click on ColorBlind, and then on the title of the resulting page, MeatballWikiSuggestions won't be among the listed backlinks. Does that bother you? (See also my comment on FeatureKarma.) -- DaveHarris
- It doesn't bother me. The Colour... page is not referred to by MeatballWikiSuggestions. I wouldn't mind anyone correcting all the links, however. Of course, the real solution is to use the One True American Spelling. ;-) --CliffordAdams
More from MeatballWikiSuggestions...
Does anyone know if there are any common browsers that do not recognize the Location: header? I would like to test the redirection pages with such a browser. (After the redirect header I added a short explanation with a normal link to the target.)
- All browsers must recognize this header or they will break badly on normal operation on the 'net.
Unfortunately, one nasty byproduct of Location-style redirections is that the script needs to know its absolute URL. Not a showstopper, but it introduces a possible configuration error.
- Isn't this available in the environment? And you can also use relative URLs like http:mb.pl
- After reading more of the CGI.pm documentation, it looks like the absolute URL is available. Unfortunately, I've seen warnings in more than one place that relative URLs don't always work in the Location header. I might still keep the option, just in case one has some kind of complex setup. (I imagine one might have problems if one uses a virtual host and is visited by an ancient browser.)
- The code which generates URLs is pretty ugly right now (0.87-test). I hope to refactor a lot of it the next time I clean up the code. (I usually add a "burst" of features, then do a "cleanup pass" over the whole script.) --CliffordAdams
I made the standard UseModWiki check for a default value, and do redirections the old way if so.
I've also changed the #REDIRECT directive to use Location-style redirections. It was a bit tricky since I also avoid redirection loops.
''Looking good; though the location for browsing should be the plain vanilla script?PageName? not script?action=browse&id=PageName?'
The location of any page should be script?PageName? except when:
- Options are used, like diff=1. In this case I use the full "action=browse&id=PageName?&option=value..."
- The page is the target of a redirection. In this case I use "action=rebrowse" to break loops. (You could also use "rebrowse" to view redirected pages.)
Now I'm wondering if you need to use rebrowse. Can't you just use the referal URL to tell where you're coming from. But then again, things like JunkBuster? break ClickStream?s. Oh well. -- SunirShah
- When working with redirection, I don't want to trust the browser to do anything special. Redirection loops are a possibility unless the target URLs are different than an ordinary browsing URL. (This is especially bad if a robot gets caught in the loop--it can become an effective DoS attack.) I'm still considering eliminating rebrowse, and replacing it with an "oldid" parameter (which would also contain the old page name). --CliffordAdams
Contrast PermanentAnchor, PageAlias...