I set pretty permalink and got bbpress working.
I am a newbie for PHP and eager to know how the box work behind the page. Can you please give me some advice or link about the question I mentioned before–how the bbpress front page works?
Actually i don’t know what do you mean by “how the bbpress front page works?” Do you mean the page structure or do you mean the url structure?
Let’s explain the question clearly:
For url above, I want to know which page that url will finally located on. I guess all request will be first directed to index.php, but how about the next step and which page on earth will be directed to display the main body of page.
I am not native English, I don’t know if I have made the question clear.
Thanks for you kind response.
You’ll have noticed that there’s no “topic” subdirectory inside your “forums” directory, so what I think you’re asking is “is bbPress really serving a page that doesn’t physically exist on my hard drive?”
The answer is yes, bbPress generates the page on the fly, so there is no stored page that has the content of that URL.
MultiViews option makes this happen because the server tries to find the best match to your URL. It looks first for
forums and finds it, so then it looks for
topic in forums, which doesn’t exist, so it tries the next best thing, which is to look for an
index of some kind, and it finds the bbPress
When bbPress runs (through index.php) it still sees the originally requested url, so the fact that it’s a request for
topic/242 is spotted by the code – it’s a simple as stripping the integer value from the string and using that as the primary key for the database lookup.
Briefly, the sequence is that
bb-load.php loads your
config.php, which specifies where your DB is (so the content can be generated),
config.php then loads
bb-settings.php which is where most of the core request-processing is done.
At least… that’s what I got from looking through the code A core dev. might be able to describe it better.
Actually MultiViews looks for topic.php if it hasn’t found topic/, but otherwise you’re spot on.
You can also use RewriteRules which forces the server to do the same thing ‘manually’.
When you request that URL, Apache’s MultiViews or RewriteRules (whichever you are using) loads topic.php. That file then prepares a bunch of data and displays it with my-templates/topic.php (If that file exists) or bb-templates/topic.php (otherwise).
If you are familiar with the way WordPress works, it may not help much This is one area where WordPress and bbPress are quite different.