The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
Custom SEO urls (mod_rewrite only) Details »» | |||||||||||||||||||||||||||||||
What does this do?
This mod allows you to define the beginning part of all the friendly urls. Eventually, more of the url may be customizable but this should be enough to provide a nice structure to your site anyway. I have now released this as more of a mod to make it easier for the less technical admins. What use is this to me? I can see a couple of major uses here. 1. If you want to translate the friendly urls into your local language (so instead of having http://example.com/threads/123-Test-Thread/ you have http://example.com/[translation]/123-Test-thread) 2. You want a bit more structure to your links eg forum/threads, forum/posts, blogs/entries etc 3. You just don't like the defaults you've been stuck with and want to change to t,p,f,b and e Installation 1. First step here, is to ensure that the default mod rewrite urls work for you. Upload the default .htaccess file from the do_not_upload folder to your forums and switch on mod rewrite friendly urls in the server settings and optimisations area of your control panel. 2.Browse around your forums and check that all the links still work. (If they don't you need to work with vb support and your host to get them working) 3. Upload the contents of the upload folder in the zip. 4. Import the product. 5. There is now a new option group in your admin cp; friendly url settings. Change these to your liking. 5a. There is also a link to the rewrite rule generator from the settings page; once you've got the settings to your liking, visit the link to generate a .htaccess file. Alternativly follow the instructions below to make your own. 6. Once you've made these changes, you need to edit your .htaccess file rewrite rules to reflect the changes you made. You need to replicate the change to this file that you've made to the options. you will see a set of: Code:
RewriteRule ^threads/([0-9]+)(?:/?$|(?:-[^/]+))(?:/?$|(?:/page([0-9]+)?)) showthread.php?t=$1&page=$2&%{QUERY_STRING} RewriteRule ^members/([0-9]+) member.php?u=$1&%{QUERY_STRING} RewriteRule ^forums/([0-9]+)(?:/?$|(?:-[^/]+))(?:/?$|(?:/page([0-9]+)?)) forumdisplay.php?f=$1&page=$2&%{QUERY_STRING} RewriteRule ^blogs/([0-9]+)(?:/?$|(?:-[^/]+))(?:/?$|(?:/page([0-9]+)?)) blog.php?u=$1&page=$2&%{QUERY_STRING} RewriteRule ^entries/([0-9]+)(?:/?$|(?:-[^/]+))(?:/?$|(?:/page([0-9]+)?)) entry.php?b=$1&page=$2&%{QUERY_STRING} 7. (Optional) Extra credit. Some people want the /forums/ to point to the forumindex page and /blogs/ to point to blog.php the following rewrite rules will take care of this. These should be added to the .htaccess file (don't overwrite any existing rules, these are new ones) Code:
RewriteRule ^forums/(index.php)?$ forum.php?%{QUERY_STRING} RewriteRule ^blogs/(index.php)?$ blog.php?%{QUERY_STRING} forums.domain.com and blogs.domain.com support This is not quite as easy as the above and requires a file edit to achieve. If you are using 4.0.1; you can skip the file edit part as it appears to work without. 1. Make a backup copy of includes/class_friendly_url.php 2. Around line 604 find: PHP Code:
PHP Code:
PHP Code:
4. In the vbulletin control panel set the cookie domain to be .yourdomain.com I dont know if this will have any knock on effects elsewhere, but it seems to be working for me on my dev board. 5. You can now set a value for forums to be http://forums.domain.com and blogs to be http://blogs.domain.com or similar based upon your requirement. 6. Rewrite rules are a bit more complex for this setup; this is a good resource for getting the server side stuff setup: http://www.reconn.us/content/view/46/67/ example rewrite rules: Code:
RewriteCond %{HTTP_HOST} ^(www.)?forums.domain.com$ [NC] RewriteRule ^threads/([0-9]+)(?:/?$|(?:-[^/]+))(?:/?$|(?:/page([0-9]+)?)) showthread.php?t=$1&page=$2&%{QUERY_STRING} RewriteRule ^members/([0-9]+) member.php?u=$1&%{QUERY_STRING} RewriteRule ^/([0-9]+)(?:/?$|(?:-[^/]+))(?:/?$|(?:/page([0-9]+)?)) forumdisplay.php?f=$1&page=$2&%{QUERY_STRING} RewriteRule ^/(index.php)?$ forum.php?%{QUERY_STRING} RewriteCond %{HTTP_HOST} ^(www.)?blogs.domain.com$ [NC] RewriteRule ^entries/([0-9]+)(?:/?$|(?:-[^/]+))(?:/?$|(?:/page([0-9]+)?)) entry.php?b=$1&page=$2&%{QUERY_STRING} RewriteRule ^/(index.php)?$ blog.php?%{QUERY_STRING} RewriteRule ^/([0-9]+)(?:/?$|(?:-[^/]+))(?:/?$|(?:/page([0-9]+)?)) blog.php?u=$1&page=$2&%{QUERY_STRING}
Notes
Download Now
Screenshots
Show Your Support
|
Благодарность от: | ||
Naijasite |
Comments |
#52
|
||||
|
||||
I have trying /threads/ /threads threads/ Not working
|
#53
|
|||
|
|||
Code:
#Credits: Christopher Riley, Vbulletin, http://www.vbulletin.com/forum/showthread.php?325798 #File was made with the best bits from all the above. #turn on and setup rewrite engine RewriteEngine On Options +FollowSymLinks ### THIS IS A LITTLE EXTRA SECURITY AND CAN BE REMOVED #Has to be at the top else it wouldn't get past the accident prevention rules RewriteRule ^includes/(.*) index.php RewriteRule ^vb/(.*) index.php RewriteRule ^packages/(.*) index.php #Prevent rewriting files; this will/should stop accidentilly hiding images/js etc from the browser RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] #these rules can't be edited by my mod, so leave them as are. RewriteRule ^content/(.*) content.php?r=$1&%{QUERY_STRING} RewriteRule ^widget/config/([0-9]+) widget.php?r=config/$1&%{QUERY_STRING} RewriteRule ^list/([^/]*/)([0-9]+) list.php?r=$1$2&%{QUERY_STRING} RewriteRule ^threads/([0-9]+)(?:/?$|(?:-[^/]+))(?:/?$|(?:/page([0-9]+)?)) showthread.php?t=$1&page=$2&%{QUERY_STRING} RewriteRule ^forums/index.php$ forum.php?%{QUERY_STRING} #Place a # in front of the above rule and remove the # from the below rule if you want to make index.php optional in the url #RewriteRule ^forums/(index.php)$ forum.php?%{QUERY_STRING} RewriteRule ^members/([0-9]+) member.php?t=$1&%{QUERY_STRING} RewriteRule ^blogs/([0-9]+)(?:/?$|(?:-[^/]+))(?:/?$|(?:/page([0-9]+)?)) blog.php?u=$1&page=$2&%{QUERY_STRING} RewriteRule ^forums/([0-9]+)(?:/?$|(?:-[^/]+))(?:/?$|(?:/page([0-9]+)?)) forumdisplay.php?f=$1&page=$2&%{QUERY_STRING} RewriteRule ^entries/([0-9]+)(?:/?$|(?:-[^/]+))(?:/?$|(?:/page([0-9]+)?)) entry.php?b=$1&page=$2&%{QUERY_STRING} #You can remove the # in front of one of these rules to rewrite blogs/ or blogs/index.php to blogs.php #(sorry i've no way to automatically detect If you are likely to need this or not) #RewriteRule ^blogs/(index.php)$ forum.php?%{QUERY_STRING} #RewriteRule ^blogs/index.php$ forum.php?%{QUERY_STRING} Bear in mind, you need to SAVE the settings before the rewrite script will give you upto date results. |
#54
|
||||
|
||||
Thank you, All installet but addons dont have chans with my script!
Plugin is on you can check www.forumivirtual.com if it work! |
#55
|
|||
|
|||
You need to have mod_rewrite urls switched on.
|
#56
|
|||
|
|||
If I try to view forums as guest I get a 404 Not found error with the url being www.mydomain.com/forum/forumtitle. When I log in, I can get to forum as the url changes to www.mydomain.com/forum/forum/forumtitle
Any idea what is wrong? |
#57
|
|||
|
|||
I think this is a known bug in vbulletin; thou I thought it had been fixed...
Edit: was correct see http://www.vbulletin.com/forum/proje...?issueid=35139 If you change the forums prefix to something other than forum eg f or forums, it should work correctly. |
#58
|
|||
|
|||
Quote:
Is there any way to have it domain.com/forum/title rather than domain.com/forum/f/2-title? Or even a way to just remove the forum id? |
#59
|
|||
|
|||
You can't remove the forumid - vb needs that to know which forum to show As for removing the 'f/' Its doable, however the more you mess around with the internals of the rewriting the more issues arise from it.
I have a really nice bit of code that rewrites threads to be /forums/forum-title/subforum-title/thread-title-threadid as elegant as it was, it required lots of little adjustments here and there to have it work properly. |
#60
|
|||
|
|||
can i customize it like That
::thread:: http://v.3bir.com/1/ page 2 http://v.3bir.com/1-2/ ::Forums:: http://v.3bir.com/f14/ page 2 http://v.3bir.com/f14-2/ ::Members:: http://v.3bir.com/m1/ |
#61
|
|||
|
|||
This mod allows for simple customisations only; as it relies on vbulletins own rewriting classes. The more you try to customise, the more likely it is that you will have knock on effects else where.
Once vbulletin is a bit more stable and its unlikely that the url classes will change too much between versions, at that point i'll look into other things that can be achieved. |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|