Recent Topics

[1.10.x] Permalink URLs

Started by on Mar 16, 2008 – Contents updated: Mar 16, 2008

Mar 16, 2008 09:13    

My b2evolution Version: 1.10.x

Just upgraded upon advice here to do so, from 1.9x to 2.40RC2.

It seemed to handle the upgrade fine, but then I found in order for the URLs for categories, archives, permalinks to work I had to set the URLS to params. What's up with that? It worked with the "pretty urls" for the old blog just fine. Permalinks to the old blog postings are reinterpreted now, to come out in the params form, so they work, but we want our pretty URLs to work ! :-D

example:
Permalink: http://combatwombat.7doves.com/index.php/2007/10/31/p377
becomes:
http://combatwombat.7doves.com/?p=377&more=1&c=1&tb=1&pb=1

I am using the supplied index.php for multi-blogs. The only changes required were to point the way to config.php correctly (../conf/config.php)
As the public_html root of the webserver has B2evo as it's main folders, and combatwombat is a directory in it also, with the index.php in combatwombat.

The Domain name resolution resolves to the combatwombat directory.

Mar 16, 2008 09:43

any chance you deleted or over-wrote your .htaccess file? AFAIK there is a trick in sample.htaccess that is supposed to maybe make this work. Since yours used to work and now doesn't perhaps a change to or deletion of your previous .htaccess is the root of all evil here?

Mar 16, 2008 09:57

Good thinking, EdB, I even thunked that myself. But no, .htaccess is there and in good health.

RewriteCond %{HTTP_REFERER} !^http://combatwombat.7doves.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://combatwombat.7doves.com$ [NC]

But having a look at the sample htaccess it says:
# CATCH EVERYTHING INTO B2EVO:
# The following will allow you to have URL right off the site root,
# using index.php as a stub but not showing it.
# This will add support for URLs like: http://example.com/2006/08/29/post-title
# Redirect anything that's not an existing directory or file to index.php
#
# RewriteEngine On
# RewriteCond %{REQUEST_FILENAME} !-d
# RewriteCond %{REQUEST_FILENAME} !-f
# RewriteRule ^ index.php

I'm not sure about doing that, as there are other websites housed in subdirectories, not just b2evo. Whadya reckon?

Mar 16, 2008 10:03

combatwombat wrote:

Good thinking, EdB

First time for everything eh?

combatwombat wrote:

Whadya reckon?

I know absolutely nothing about .htaccess stuff. I've tinkered in it a few times and broke everything ... so I scramble to undo the damage. My hosts have all managed to work "out of the box" on the pretty url thing, so I've never actually had to do anything with sample.htaccess. All I know about this issue is what I pick up in the forums. Having disclaimed appropriately, I figure it can't hurt too much to give it a go. My brain is telling me that stuff like addon domains (where foo.com is actually going to bar.com/foo) won't be affected because the server takes care of that stuff before it gets into your space, but hey what the heck: pull the trigger on it and if need be recall the round. Kinda cool that you can do that in the digital world yah?

Mar 16, 2008 10:07

Yup, figured that too. Pulled the trigger. Websites still work, but no go on the pretty urls. :(

Mar 16, 2008 10:22

Post the whole of your current .htaccess

¥

Mar 16, 2008 10:35

.htaccess file:

####################
AddHandler application/x-httpd-php4 .php
# PHP SECURITY:
# this will make register globals off in the evo directory
<IfModule mod_php4.c>
php_flag register_globals off
</IfModule>
<IfModule mod_php5.c>
php_flag register_globals off
</IfModule>

# PHP5
# This may need to be in each folder:
# AddHandler application/x-httpd-php5 .php

# CLEAN URLS:
# If you're using Apache 2, you may wish to try this if clean URLs don't work:
# AcceptPathInfo On


# DEFAULT DOCUMENT TO DISPLAY:
# this will select the default blog template to be displayed
# if the URL is just .../blogs/
<IfModule mod_dir.c>
DirectoryIndex index.php index.html
</IfModule>
RewriteCond %{HTTP_REFERER} !^http://combatwombat.7doves.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://combatwombat.7doves.com$ [NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php
####################

Mar 16, 2008 10:44

ok, try changing it to this and then seeing if it still redirects your links to non-index.php version of the url

ie/ currently it redirects http://combatwombat.7doves.com/index.php/2007/10/31/gutsy_effort_in_new_ati_driver to http://combatwombat.7doves.com/2007/10/31/gutsy_effort_in_new_ati_driver

####################
AddHandler application/x-httpd-php4 .php
# PHP SECURITY:
# this will make register globals off in the evo directory
<IfModule mod_php4.c>
php_flag register_globals off
</IfModule>
<IfModule mod_php5.c>
php_flag register_globals off
</IfModule>

# PHP5
# This may need to be in each folder:
# AddHandler application/x-httpd-php5 .php

# CLEAN URLS:
# If you're using Apache 2, you may wish to try this if clean URLs don't work:
# AcceptPathInfo On


# DEFAULT DOCUMENT TO DISPLAY:
# this will select the default blog template to be displayed
# if the URL is just .../blogs/
<IfModule mod_dir.c>
DirectoryIndex index.php index.html
</IfModule>


#RewriteCond %{HTTP_REFERER} !^http://combatwombat.7doves.com/.*$ [NC]
#RewriteCond %{HTTP_REFERER} !^http://combatwombat.7doves.com$ [NC]
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteRule ^ index.php
####################

¥

Mar 16, 2008 11:01

Tried that, thanks Yabba, but still no go.

But playing with settings, and setting the Blog Base URL to "extra path on index.php", fires up the page with this URL ok:
http://7doves.com/index.php/combatwombat/2007/10/31/gutsy_effort_in_new_ati_driver
Although that is nowhere near where I want to be ( I want the absolute url), I thought it may give you a clue what is happening?

By the way, what is your avatar? It's really hard to make out.

Mar 16, 2008 11:05

Ok, to remove the "index.php" from the urls, you need to set them to "absolute url" in admin and then change this bit of your htaccess

# send all others to the core
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule .*      /index.php [L]

My avatar is a doodle I did a few years ago ;)

¥

Mar 16, 2008 11:16

You bloody genius :-D

All go now!!!

Mar 16, 2008 11:32

My blog works. The other half's doesn't. Same settings, etc.
But found the trap: she had a .htaccess file in her directory also, because the old version required it to work, apparently. Remove/rename that, and life goes on for me... ;)


Form is loading...

Secure CMS – This forum is powered by b2evolution CMS, a complete engine for your website.