1
votes

I moved a website from http://lifeworkslearningcenter.com to http://lifeworks.life. I set up seven 301 redirects for individual URLs that are working fine, as well as a simple 301 to redirect the base URL to the new base URL.

Now I need to set up a wildcard for the remaining URLs, typos, etc. What is happening right now is this: any URL not specifically covered in the 7 redirects will redirect to the new base URL, then add the previously entered trailing URL, and results in a 404. Like this:

http://lifeworkslearningcenter.com/incorrect-url

https://www.lifeworks.life/incorrect-url

Here is my .htaccess code, including three previous attempts at wildcard redirect statements:

RewriteEngine on

RewriteCond %{HTTP_HOST} ^lifeworkslearningcenter\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.lifeworkslearningcenter\.com$
RewriteRule ^about-lifeworks$ "https\:\/\/www\.lifeworks\.life\/team\.html" [R=301,L]

RewriteCond %{HTTP_HOST} ^lifeworkslearningcenter\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.lifeworkslearningcenter\.com$
RewriteRule ^services$ "https\:\/\/www\.lifeworks\.life\/services\.html" [R=301,L]

RewriteCond %{HTTP_HOST} ^lifeworkslearningcenter\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.lifeworkslearningcenter\.com$
RewriteRule ^methodology$ "https\:\/\/www\.lifeworks\.life\/approach\.html" [R=301,L]

RewriteCond %{HTTP_HOST} ^lifeworkslearningcenter\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.lifeworkslearningcenter\.com$
RewriteRule ^sign-up$ "https\:\/\/www\.lifeworks\.life\/enroll\.html" [R=301,L]

RewriteCond %{HTTP_HOST} ^lifeworkslearningcenter\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.lifeworkslearningcenter\.com$
RewriteRule ^rates-and-policies$ "https\:\/\/www\.lifeworks\.life\/policies\.html" [R=301,L]

RewriteCond %{HTTP_HOST} ^lifeworkslearningcenter\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.lifeworkslearningcenter\.com$
RewriteRule ^contact-us$ "https\:\/\/www\.lifeworks\.life\/contact\.html" [R=301,L]

RewriteCond %{HTTP_HOST} ^lifeworkslearningcenter\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.lifeworkslearningcenter\.com$
RewriteRule ^blog$ "https\:\/\/www\.lifeworks\.life\/blog\.html" [R=301,L]

Redirect 301 / http://lifeworks.life/

# FAILED ATTEMPTS AT WILDCARD REDIRECT

#RewriteCond %{HTTP_HOST} ^lifeworkslearningcenter\.com$ [OR]
#RewriteCond %{HTTP_HOST} ^www\.lifeworkslearningcenter\.com$
#RewriteRule ^$ "https\:\/\/www\.lifeworks\.life\/index\.html" [R=301,L]

#RedirectMatch 301 /(.*) /$1

#RedirectMatch ^/(.*)$ http://lifeworks.life/$1
1

1 Answers

3
votes

Your wildcard redirect should look like this and placed at the bottom of your other rules.

RewriteRule ^(.*)$ https://www.lifeworks.life/$1 [R=301,L]

If you need it to redirect based on file not found (404) you can have these rules. And place these at the bottom of your rules.

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ https://www.lifeworks.life/$1 [R=301,L]