Forum Moderators: phranque

Message Too Old, No Replies

Trailing slash mod_rewrite

ok im a newbieee....ok i know :)

         

followgreg

10:48 am on Apr 18, 2005 (gmt 0)

10+ Year Member




Hi,

Here is a newbie question that should make laught most of you but since I can't figure it out myself I better ask real pros.

I have a wordpress blog installed in a directory like /blog/ but each time someone links to this directory without the trailing slash (like /blog) the server returns a 301 and gets rid of the "www" of my domain name.....actually it happens in other directories too it seems.
I want to keep my "www" :) how should I do?

philaweb

11:07 am on Apr 18, 2005 (gmt 0)

10+ Year Member



~followgreg

I had the exact same problem and found the solution by following the "Apache URL Rewriting Guide" link listed at the forum charter [webmasterworld.com].

Read the "Trailing Slash Problem" part at the beginning of the page, do some adjusting to fit your server.

jd01

11:10 am on Apr 18, 2005 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



Sounds like you need to change two rules in your .htaccess.

1. To make the trailing slash optional you can add /? to the end of the rules. (? means 0 or 1 of the preceding characters or sets)

EG Any rule(s) that end in /blog/ should have a question mark added to them. like this:
RewriteRule ^yourpath/yourfile/blog/?$ /yourpath/realfile.php?blah=blah

2. The second one very likely is a condition something like:
RewriteCond %{HTTP_HOST}!(yoursite\.com)
RewriteRule ^(.*) http//yoursite.com/$1 [R=301,L]

You can simply prepend yoursite\.com with www\. and instead of forcing yoursite.com you will force www.yoursite.com. Like this:
RewriteCond %{HTTP_HOST}!(www\.yoursite\.com)
RewriteRule ^(.*) http//www\.yoursite.com/$1 [R=301,L]

Hope this helps.

Justin

Edit: Make sure you have a space before the!

followgreg

5:40 am on Apr 20, 2005 (gmt 0)

10+ Year Member




I will try that thanks.

followgreg

10:39 am on Apr 20, 2005 (gmt 0)

10+ Year Member




Well sorry guys but I could not find the way to do it in a subdirectory with Wordpress, for the rest of the site subdirectories I did:

RewriteEngine On
#
# Redirect adding trailing slash if missing
RewriteCond %{REQUEST_URI} ^/[^\.]+[^/]$
RewriteRule ^(.*)$ [%{HTTP_HOST}...] [R=301,L]

BUT for the wordpress blog subdirectory it does not work, the .htaccess looks like this:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [S=35]
RewriteRule ^feed/(feed¦rdf¦rss¦rss2¦atom)/?$ /blog/index.php?&feed=$1 [QSA,L]
RewriteRule ^(feed¦rdf¦rss¦rss2¦atom)/?$ /blog/index.php?&feed=$1 [QSA,L]
RewriteRule ^page/?([0-9]{1,})/?$ /blog/index.php?&paged=$1 [QSA,L]
RewriteRule ^comments/feed/(feed¦rdf¦rss¦rss2¦atom)/?$ /blog/index.php?&feed=$1&withcomments=1 [QSA,L]
RewriteRule ^comments/(feed¦rdf¦rss¦rss2¦atom)/?$ /blog/index.php?&feed=$1&withcomments=1 [QSA,L]
RewriteRule ^comments/page/?([0-9]{1,})/?$ /blog/index.php?&paged=$1 [QSA,L]
RewriteRule ^search/(.+)/feed/(feed¦rdf¦rss¦rss2¦atom)/?$ /blog/index.php?s=$1&feed=$2 [QSA,L]
RewriteRule ^search/(.+)/(feed¦rdf¦rss¦rss2¦atom)/?$ /blog/index.php?s=$1&feed=$2 [QSA,L]
RewriteRule ^search/(.+)/page/?([0-9]{1,})/?$ /blog/index.php?s=$1&paged=$2 [QSA,L]
RewriteRule ^search/(.+)/?$ /blog/index.php?s=$1 [QSA,L]
RewriteRule ^category/(.+)/feed/(feed¦rdf¦rss¦rss2¦atom)/?$ /blog/index.php?category_name=$1&feed=$2 [QSA,L]
RewriteRule ^category/(.+)/(feed¦rdf¦rss¦rss2¦atom)/?$ /blog/index.php?category_name=$1&feed=$2 [QSA,L]
RewriteRule ^category/(.+)/page/?([0-9]{1,})/?$ /blog/index.php?category_name=$1&paged=$2 [QSA,L]
RewriteRule ^category/(.+)/?$ /blog/index.php?category_name=$1 [QSA,L]
RewriteRule ^author/([^/]+)/feed/(feed¦rdf¦rss¦rss2¦atom)/?$ /blog/index.php?author_name=$1&feed=$2 [QSA,L]
RewriteRule ^author/([^/]+)/(feed¦rdf¦rss¦rss2¦atom)/?$ /blog/index.php?author_name=$1&feed=$2 [QSA,L]
RewriteRule ^author/([^/]+)/page/?([0-9]{1,})/?$ /blog/index.php?author_name=$1&paged=$2 [QSA,L]
RewriteRule ^author/([^/]+)/?$ /blog/index.php?author_name=$1 [QSA,L]
RewriteRule ^([0-9]{4})/feed/(feed¦rdf¦rss¦rss2¦atom)/?$ /blog/index.php?year=$1&feed=$2 [QSA,L]
RewriteRule ^([0-9]{4})/(feed¦rdf¦rss¦rss2¦atom)/?$ /blog/index.php?year=$1&feed=$2 [QSA,L]
RewriteRule ^([0-9]{4})/page/?([0-9]{1,})/?$ /blog/index.php?year=$1&paged=$2 [QSA,L]
RewriteRule ^([0-9]{4})/?$ /blog/index.php?year=$1 [QSA,L]
RewriteRule ^([0-9]{4})/([0-9]{1,2})/feed/(feed¦rdf¦rss¦rss2¦atom)/?$ /blog/index.php?year=$1&monthnum=$2&feed=$3 [QSA,L]
RewriteRule ^([0-9]{4})/([0-9]{1,2})/(feed¦rdf¦rss¦rss2¦atom)/?$ /blog/index.php?year=$1&monthnum=$2&feed=$3 [QSA,L]
RewriteRule ^([0-9]{4})/([0-9]{1,2})/page/?([0-9]{1,})/?$ /blog/index.php?year=$1&monthnum=$2&paged=$3 [QSA,L]
RewriteRule ^([0-9]{4})/([0-9]{1,2})/?$ /blog/index.php?year=$1&monthnum=$2 [QSA,L]
RewriteRule ^([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/feed/(feed¦rdf¦rss¦rss2¦atom)/?$ /blog/index.php?year=$1&monthnum=$2&day=$3&feed=$4 [QSA,L]
RewriteRule ^([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/(feed¦rdf¦rss¦rss2¦atom)/?$ /blog/index.php?year=$1&monthnum=$2&day=$3&feed=$4 [QSA,L]
RewriteRule ^([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/page/?([0-9]{1,})/?$ /blog/index.php?year=$1&monthnum=$2&day=$3&paged=$4 [QSA,L]
RewriteRule ^([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/?$ /blog/index.php?year=$1&monthnum=$2&day=$3 [QSA,L]
RewriteRule ^([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/feed/(feed¦rdf¦rss¦rss2¦atom)/?$ /blog/index.php?year=$1&monthnum=$2&day=$3&name=$4&feed=$5 [QSA,L]
RewriteRule ^([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/(feed¦rdf¦rss¦rss2¦atom)/?$ /blog/index.php?year=$1&monthnum=$2&day=$3&name=$4&feed=$5 [QSA,L]
RewriteRule ^([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/page/?([0-9]{1,})/?$ /blog/index.php?year=$1&monthnum=$2&day=$3&name=$4&paged=$5 [QSA,L]
RewriteRule ^([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/?([0-9]+)?/?$ /blog/index.php?year=$1&monthnum=$2&day=$3&name=$4&page=$5 [QSA,L]
RewriteRule ^([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/trackback/?$ /blog/index.php?year=$1&monthnum=$2&day=$3&name=$4&tb=1 [QSA,L]
</IfModule>
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [S=40]
RewriteRule ^(page)/feed/(feed¦rdf¦rss¦rss2¦atom)/?$ /blog/index.php?pagename=$1&feed=$2 [QSA,L]
RewriteRule ^(page)/(feed¦rdf¦rss¦rss2¦atom)/?$ /blog/index.php?pagename=$1&feed=$2 [QSA,L]
RewriteRule ^(page)/page/?([0-9]{1,})/?$ /blog/index.php?pagename=$1&paged=$2 [QSA,L]
RewriteRule ^(page)/?([0-9]+)?/?$ /blog/index.php?pagename=$1&page=$2 [QSA,L]
RewriteRule ^(page)/trackback/?$ /blog/index.php?pagename=$1&tb=1 [QSA,L]
RewriteRule ^feed/(feed¦rdf¦rss¦rss2¦atom)/?$ /blog/index.php?&feed=$1 [QSA,L]
RewriteRule ^(feed¦rdf¦rss¦rss2¦atom)/?$ /blog/index.php?&feed=$1 [QSA,L]
RewriteRule ^page/?([0-9]{1,})/?$ /blog/index.php?&paged=$1 [QSA,L]
RewriteRule ^comments/feed/(feed¦rdf¦rss¦rss2¦atom)/?$ /blog/index.php?&feed=$1&withcomments=1 [QSA,L]
RewriteRule ^comments/(feed¦rdf¦rss¦rss2¦atom)/?$ /blog/index.php?&feed=$1&withcomments=1 [QSA,L]
RewriteRule ^comments/page/?([0-9]{1,})/?$ /blog/index.php?&paged=$1 [QSA,L]
RewriteRule ^search/(.+)/feed/(feed¦rdf¦rss¦rss2¦atom)/?$ /blog/index.php?s=$1&feed=$2 [QSA,L]
RewriteRule ^search/(.+)/(feed¦rdf¦rss¦rss2¦atom)/?$ /blog/index.php?s=$1&feed=$2 [QSA,L]
RewriteRule ^search/(.+)/page/?([0-9]{1,})/?$ /blog/index.php?s=$1&paged=$2 [QSA,L]
RewriteRule ^search/(.+)/?$ /blog/index.php?s=$1 [QSA,L]
RewriteRule ^category/(.+)/feed/(feed¦rdf¦rss¦rss2¦atom)/?$ /blog/index.php?category_name=$1&feed=$2 [QSA,L]
RewriteRule ^category/(.+)/(feed¦rdf¦rss¦rss2¦atom)/?$ /blog/index.php?category_name=$1&feed=$2 [QSA,L]
RewriteRule ^category/(.+)/page/?([0-9]{1,})/?$ /blog/index.php?category_name=$1&paged=$2 [QSA,L]
RewriteRule ^category/(.+)/?$ /blog/index.php?category_name=$1 [QSA,L]
RewriteRule ^author/([^/]+)/feed/(feed¦rdf¦rss¦rss2¦atom)/?$ /blog/index.php?author_name=$1&feed=$2 [QSA,L]
RewriteRule ^author/([^/]+)/(feed¦rdf¦rss¦rss2¦atom)/?$ /blog/index.php?author_name=$1&feed=$2 [QSA,L]
RewriteRule ^author/([^/]+)/page/?([0-9]{1,})/?$ /blog/index.php?author_name=$1&paged=$2 [QSA,L]
RewriteRule ^author/([^/]+)/?$ /blog/index.php?author_name=$1 [QSA,L]
RewriteRule ^([0-9]{4})/feed/(feed¦rdf¦rss¦rss2¦atom)/?$ /blog/index.php?year=$1&feed=$2 [QSA,L]
RewriteRule ^([0-9]{4})/(feed¦rdf¦rss¦rss2¦atom)/?$ /blog/index.php?year=$1&feed=$2 [QSA,L]
RewriteRule ^([0-9]{4})/page/?([0-9]{1,})/?$ /blog/index.php?year=$1&paged=$2 [QSA,L]
RewriteRule ^([0-9]{4})/?$ /blog/index.php?year=$1 [QSA,L]
RewriteRule ^([0-9]{4})/([0-9]{1,2})/feed/(feed¦rdf¦rss¦rss2¦atom)/?$ /blog/index.php?year=$1&monthnum=$2&feed=$3 [QSA,L]
RewriteRule ^([0-9]{4})/([0-9]{1,2})/(feed¦rdf¦rss¦rss2¦atom)/?$ /blog/index.php?year=$1&monthnum=$2&feed=$3 [QSA,L]
RewriteRule ^([0-9]{4})/([0-9]{1,2})/page/?([0-9]{1,})/?$ /blog/index.php?year=$1&monthnum=$2&paged=$3 [QSA,L]
RewriteRule ^([0-9]{4})/([0-9]{1,2})/?$ /blog/index.php?year=$1&monthnum=$2 [QSA,L]
RewriteRule ^([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/feed/(feed¦rdf¦rss¦rss2¦atom)/?$ /blog/index.php?year=$1&monthnum=$2&day=$3&feed=$4 [QSA,L]
RewriteRule ^([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/(feed¦rdf¦rss¦rss2¦atom)/?$ /blog/index.php?year=$1&monthnum=$2&day=$3&feed=$4 [QSA,L]
RewriteRule ^([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/page/?([0-9]{1,})/?$ /blog/index.php?year=$1&monthnum=$2&day=$3&paged=$4 [QSA,L]
RewriteRule ^([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/?$ /blog/index.php?year=$1&monthnum=$2&day=$3 [QSA,L]
RewriteRule ^([0-9]{4})/([0-9]{1,2})/([^/]+)/feed/(feed¦rdf¦rss¦rss2¦atom)/?$ /blog/index.php?year=$1&monthnum=$2&name=$3&feed=$4 [QSA,L]
RewriteRule ^([0-9]{4})/([0-9]{1,2})/([^/]+)/(feed¦rdf¦rss¦rss2¦atom)/?$ /blog/index.php?year=$1&monthnum=$2&name=$3&feed=$4 [QSA,L]
RewriteRule ^([0-9]{4})/([0-9]{1,2})/([^/]+)/page/?([0-9]{1,})/?$ /blog/index.php?year=$1&monthnum=$2&name=$3&paged=$4 [QSA,L]
RewriteRule ^([0-9]{4})/([0-9]{1,2})/([^/]+)/?([0-9]+)?/?$ /blog/index.php?year=$1&monthnum=$2&name=$3&page=$4 [QSA,L]
RewriteRule ^([0-9]{4})/([0-9]{1,2})/([^/]+)/trackback/?$ /blog/index.php?year=$1&monthnum=$2&name=$3&tb=1 [QSA,L]
</IfModule>
# END WordPress

(sorry for the amount of code it isn't me :)

anyone has an idea?