Forum Moderators: phranque
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?
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.
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!
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?