Page 1 of 1
htaccess for old URLs [solved]
Posted: Wed Apr 17, 2013 11:57 am
by douglas1438
Hi all,
Have just created a new cmsms site, the old static site had a lot of SEO work done and they don't want to lose the listings and have requested 301 redirects.
So, for example: domain.com/bedrooms.php should redirect to domain.com/rooms-and-rates/rooms
Having looked at the official help page I've inserted the following in my htaccess file:
RewriteRule ^bedrooms.php$ "
http://www.domain.com/rooms-and-rates/rooms [R=301,L]
This appears to have no effect and just sends me to my 404 not found page as:
"
http://www.domain.com/?page=bedrooms.php
Hope this makes sense and someone can help?
Thank you
Re: htaccess for old URLs
Posted: Wed Apr 17, 2013 12:50 pm
by rotezecke
could you post entire htaccess file?
do you have pretty URLs enabled?
Re: htaccess for old URLs
Posted: Wed Apr 17, 2013 1:05 pm
by douglas1438
Yes, pretty URLs are enabled. Entire .htaccess file below, thank you.
Code: Select all
# Attempt to override some php settings, these settings may be helpful on some hosts if your
# default configuration does not meet CMS's minimum requirements, and your host
# has given your account appropriate permissions
#php_value upload_max_filesize "10M"
#php_value session_save_path "tmp/cache"
#php_flag magic_quotes_gpc Off
#php_flag register_globals Off
#php_flag session.use_trans_sid Off
# (this is important, so uncomment if your host permit)
#Options -Indexes
#ServerSignature Off
#Options +FollowSymLinks
# To prevent E_STRICT problems with PHP 5.3+ you can uncomment the following lines
# Note: These settings should only be enabled for production sites!
#php_flag display_startup_errors 0
#php_flag display_errors 0
#php_flag html_errors 0
#php_value docref_root 0
#php_value docref_ext 0
<IfModule mod_rewrite.c>
RewriteEngine on
#
#Sub-dir e.g: /cmsms
RewriteBase /
# 301 Redirect all requests that don't contain a dot or trailing slash to
# include a trailing slash
# but ignore POST requests.
#RewriteCond %{REQUEST_URI} !/$
#RewriteCond %{REQUEST_URI} !\.
#RewriteCond %{REQUEST_METHOD} !POST$
#RewriteRule ^(.*) %{REQUEST_URI}/ [R=301,L]
# Rewrites urls in the form of /parent/child/
# but only rewrites if the requested URL is not a file or directory
#
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?page=$1 [QSA]
#
# v102 rewrite rules
#
RewriteEngine on
RewriteRule ^bedrooms.php$ http://www.pelhamhouse.com/rooms-and-rates/rooms [R=301,L]
</IfModule>
<IfModule mod_header.c>
# Disable ETags
Header unset ETag
FileEtag None
</IfModule>
<IfModule mod_deflate.c>
# Compress css, plaintext, xml, gif, and images in transport.
AddOutputFilterByType DEFLATE text/css text/plain text/xml image/gif image/jpeg image/png
</IfModule>
<IfModule mod_expires.c>
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
# Set expires tags on various files... so that the browser wont attempt to reload them.
ExpiresActive On
ExpiresDefault "access plus 1 year"
<IfModule mod_header.c>
# Setting cache control to public allowes proxy servers to cache the items too.
Header set Cache-Control "public"
</IfModule>
</FilesMatch>
</IfModule>
Re: htaccess for old URLs
Posted: Thu Apr 18, 2013 12:32 am
by psy
I had a similar problem recently with a 301 redirect rule.
Solution for me was to put the custom rule ABOVE the cmsms rewrite rules.
That way, the rewritten rule was ready for the CMSMS pretty URL stuff.
hth
psy
Re: htaccess for old URLs
Posted: Thu Apr 18, 2013 12:41 am
by calguy1000
Code: Select all
RewriteRule ^bedrooms.php$ http://www.pelhamhouse.com/rooms-and-rates/rooms [R=301,L]
You really should do your reading.... the ,L stands for 'LAST' i.e: no further rules will be processed.
Also, the rule was placed AFTER a rule that would also match the condition, therefore that rule would be processed first.
You really should use your own resources, exercise all research options and test things before you ask a question and expect that others will give you an answer quckly, and for free.
<pick your god of choice> invented Google for a reason.
Re: htaccess for old URLs
Posted: Thu Apr 18, 2013 12:57 am
by rotezecke
Code: Select all
RewriteRule ^bedrooms.php$ http://www.pelhamhouse.com/rooms-and-rates/rooms [R=301,L]
move it below
RewriteBase /
The L may or may not be what you want here.
note: you call "RewriteEngine on" twice.
Re: htaccess for old URLs
Posted: Thu Apr 18, 2013 10:36 am
by douglas1438
Calguy, apologies if you feel I'm taking advantage. I spent a great deal of time researching my problem today and again this morning, but it just doesn't make sense to me. I confess I'm out of my depth, sorry.
I've followed the advice posted, and ended up with the .htaccess file that appears to work. Using a redirect checker it confirms it is working but the site still displays the URL as "
http://www.domain.com/?page=bedrooms.php
Something somewhere is changing the format of the URL and I don't know where.
Re: htaccess for old URLs
Posted: Thu Apr 18, 2013 1:42 pm
by velden