homepage Welcome to WebmasterWorld Guest from 54.234.147.84
register, free tools, login, search, subscribe, help, library, announcements, recent posts, open posts,
Pubcon Platinum Sponsor 2014
Home / Forums Index / Code, Content, and Presentation / Apache Web Server
Forum Library, Charter, Moderators: Ocean10000 & incrediBILL & phranque

Apache Web Server Forum

    
How do I 301 redirect correctly
Help needed redirecting with 301 to another URL
noumaan204




msg:4378320
 2:49 pm on Oct 23, 2011 (gmt 0)

A long time ago I had a forum on my site:

http://site.example.com/forum

Then I removed the forum but Google Webmaster Tools are still giving 401 not found on this forum related URLs which I removed years ago. So I need to get rid of these errors.

I also had a wordpress translation plugin that used a URL structure like this:

http://site.example.com/ar/2007/10/mypost/

it added the lang in the URL now all these language related urls are also appearing as errors eventhough i removed the plugin years ago.

=======

So I want to redirect bots and visitors to my site's main page and also want to tell the Google Bot that this page has been removed permanently. NOTE: I use wordpress so my .htcaccess file already has code inserted by wordpress and w3 total cache plugin. So here is how I am gonna do that

## This code already exists in my .htaccess

######



# BEGIN W3TC Browser Cache
<IfModule mod_deflate.c>
<IfModule mod_setenvif.c>
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
</IfModule>
<IfModule mod_headers.c>
Header append Vary User-Agent env=!dont-vary
</IfModule>
<IfModule mod_filter.c>
AddOutputFilterByType DEFLATE text/css application/x-javascript text/x-component text/html text/richtext image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon
</IfModule>
</IfModule>
<FilesMatch "\.(css|js|htc|CSS|JS|HTC)$">
FileETag None
<IfModule mod_headers.c>
Header set X-Powered-By "W3 Total Cache/0.9.2.4"
</IfModule>
</FilesMatch>
<FilesMatch "\.(html|htm|rtf|rtx|svg|svgz|txt|xsd|xsl|xml|HTML|HTM|RTF|RTX|SVG|SVGZ|TXT|XSD|XSL|XML)$">
FileETag None
<IfModule mod_headers.c>
Header set X-Powered-By "W3 Total Cache/0.9.2.4"
</IfModule>
</FilesMatch>
<FilesMatch "\.(asf|asx|wax|wmv|wmx|avi|bmp|class|divx|doc|docx|eot|exe|gif|gz|gzip|ico|jpg|jpeg|jpe|mdb|
mid|midi|mov|qt|mp3|m4a|mp4|m4v|mpeg|mpg|mpe|mpp|otf|odb|odc|odf|odg|odp|ods|odt|ogg|pdf|png|
pot|pps|ppt|pptx|ra|ram|svg|svgz|swf|tar|tif|tiff|ttf|ttc|wav|wma|wri|xla|xls|xlsx|xlt|xlw|zip|
ASF|ASX|WAX|WMV|WMX|AVI|BMP|CLASS|DIVX|DOC|DOCX|EOT|EXE|GIF|GZ|GZIP|ICO|JPG|JPEG|JPE|MDB|MID|
MIDI|MOV|QT|MP3|M4A|MP4|M4V|MPEG|MPG|MPE|MPP|OTF|ODB|ODC|ODF|ODG|ODP|ODS|ODT|OGG|PDF|PNG|POT|
PPS|PPT|PPTX|RA|RAM|SVG|SVGZ|SWF|TAR|TIF|TIFF|TTF|TTC|WAV|WMA|WRI|XLA|XLS|XLSX|XLT|XLW|ZIP)$">
FileETag None
<IfModule mod_headers.c>
Header set X-Powered-By "W3 Total Cache/0.9.2.4"
</IfModule>
</FilesMatch>
# END W3TC Browser Cache
# BEGIN W3TC Page Cache core
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^(.*\/)?w3tc_rewrite_test$ $1?w3tc_rewrite_test=1 [L]
RewriteCond %{HTTP_USER_AGENT} (2\.0\ mmp|240x320|alcatel|amoi|asus|au\-mic|audiovox|avantgo|benq|bird|blackberry|blazer|cdm|
cellphone|danger|ddipocket|docomo|dopod|elaine/3\.0|ericsson|eudoraweb|fly|haier|hiptop|
hp\.ipaq|htc|huawei|i\-mobile|iemobile|j\-phone|kddi|konka|kwc|kyocera/wx310k|lenovo|lg|
lg/u990|lge\ vx|midp|midp\-2\.0|mmef20|mmp|mobilephone|mot\-v|motorola|netfront|newgen|newt|nintendo\ ds|nintendo\ wii|nitro|nokia|novarra|o2|openweb|
opera\ mobi|opera\.mobi|palm|panasonic|pantech|pdxgw|pg|philips|phone|playstation\ portable|portalmmm|\bppc\b|proxinet|psp|qtek|sagem|samsung|sanyo|sch|sec|sendo|sgh|sharp|
sharp\-tq\-gx10|small|smartphone|softbank|sonyericsson|sph|symbian|symbian\ os|symbianos|toshiba|treo|ts21i\-10|up\.browser|up\.link|uts|vertu|vodafone|wap|willcome|
windows\ ce|windows\.ce|winwap|xda|zte) [NC]
RewriteRule .* - [E=W3TC_UA:_low]
RewriteCond %{HTTP_USER_AGENT} (acer\ s100|android|archos5|blackberry9500|blackberry9530|blackberry9550|blackberry\ 9800|cupcake|
docomo\ ht\-03a|dream|htc\ hero|htc\ magic|htc_dream|htc_magic|incognito|ipad|iphone|ipod|kindle|lg\-gw620|liquid\ build|maemo|mot\-mb200|mot\-mb300|nexus\ one|opera\ mini|samsung\-s8000|series60.*webkit|
series60/5\.0|sonyericssone10|sonyericssonu20|sonyericssonx10|t\-mobile\ mytouch\ 3g|t\-mobile\ opal|tattoo|webmate|webos) [NC]
RewriteRule .* - [E=W3TC_UA:_high]
RewriteCond %{HTTP_COOKIE} w3tc_referrer=.*(google\.com|yahoo\.com|bing\.com|ask\.com|msn\.com) [NC]
RewriteRule .* - [E=W3TC_REF:_search_engines]
RewriteCond %{HTTPS} =on
RewriteRule .* - [E=W3TC_SSL:_ssl]
RewriteCond %{SERVER_PORT} =443
RewriteRule .* - [E=W3TC_SSL:_ssl]
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteRule .* - [E=W3TC_ENC:_gzip]
RewriteCond %{REQUEST_METHOD} !=POST
RewriteCond %{QUERY_STRING} =""
RewriteCond %{HTTP_HOST} =desi-galaxy.sabza.org
RewriteCond %{REQUEST_URI} \/$ [OR]
RewriteCond %{REQUEST_URI} (sitemap\.xml(\.gz)?) [NC]
RewriteCond %{REQUEST_URI} !(\/wp-admin\/|\/xmlrpc.php|\/wp-(app|cron|login|register|mail)\.php|wp-.*\.php|index\.php) [NC,OR]
RewriteCond %{REQUEST_URI} (wp-comments-popup\.php|wp-links-opml\.php|wp-locations\.php) [NC]
RewriteCond %{HTTP_COOKIE} !(comment_author|wp-postpass|wordpress_\[a-f0-9\]\+|wordpress_logged_in) [NC]
RewriteCond %{HTTP_USER_AGENT} !(W3\ Total\ Cache/0\.9\.2\.4) [NC]
RewriteCond "%{DOCUMENT_ROOT}/wp-content/w3tc/pgcache/%{REQUEST_URI}/_index%{ENV:W3TC_UA}%{ENV:W3TC_REF}%{ENV:W3TC_SSL}.html%{ENV:W3TC_ENC}" -f
RewriteRule .* "/wp-content/w3tc/pgcache/%{REQUEST_URI}/_index%{ENV:W3TC_UA}%{ENV:W3TC_REF}%{ENV:W3TC_SSL}.html%{ENV:W3TC_ENC}" [L]
RewriteCond %{REQUEST_METHOD} !=POST
RewriteCond %{QUERY_STRING} =""
RewriteCond %{HTTP_HOST} =desi-galaxy.sabza.org
RewriteCond %{REQUEST_URI} \/$ [OR]
RewriteCond %{REQUEST_URI} (sitemap\.xml(\.gz)?) [NC]
RewriteCond %{REQUEST_URI} !(\/wp-admin\/|\/xmlrpc.php|\/wp-(app|cron|login|register|mail)\.php|wp-.*\.php|index\.php) [NC,OR]
RewriteCond %{REQUEST_URI} (wp-comments-popup\.php|wp-links-opml\.php|wp-locations\.php) [NC]
RewriteCond %{HTTP_COOKIE} !(comment_author|wp-postpass|wordpress_\[a-f0-9\]\+|wordpress_logged_in) [NC]
RewriteCond %{HTTP_USER_AGENT} !(W3\ Total\ Cache/0\.9\.2\.4) [NC]
RewriteCond "%{DOCUMENT_ROOT}/wp-content/w3tc/pgcache/%{REQUEST_URI}/_index%{ENV:W3TC_UA}%{ENV:W3TC_REF}%{ENV:W3TC_SSL}.xml%{ENV:W3TC_ENC}" -f
RewriteRule .* "/wp-content/w3tc/pgcache/%{REQUEST_URI}/_index%{ENV:W3TC_UA}%{ENV:W3TC_REF}%{ENV:W3TC_SSL}.xml%{ENV:W3TC_ENC}" [L]
</IfModule>
# END W3TC Page Cache core

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress
##################
# After This Code I am Gonna Add This
#############
RewriteEngine On
RewriteRule ^/forum(.*) http://site.example.com/ [R=301,L]

RewriteEngine On
RewriteRule ^/zh-CN(.*) http://site.example.com/ [R=301,L]

RewriteEngine On
RewriteRule ^/ar(.*) http://site.example.com/
[R=301,L]


I just wanted to ask you guys if this code is correct and that it wont cause any harm.

[edited by: tedster at 2:34 am (utc) on Oct 24, 2011]
[edit reason] added line breaks to prevent side scroll [/edit]

 

lucy24




msg:4378408
 8:37 pm on Oct 23, 2011 (gmt 0)

Most of what you posted is irrelevant to your question. This is good, because it gives you an opportunity to repost the significant parts with manually added line breaks instead of going in search of a moderator to fix it.

I detoured to check other browsers. Opera wraps overlong lines-- in fact it's been known to do so even when I don't want it to-- but the other families available to me don't.

g1smd




msg:4378422
 9:03 pm on Oct 23, 2011 (gmt 0)

Add a blank line after each closing ifModule tag and after each RewriteRule.

Fix the long line thread stretch in this forum.

Slashes do not need to be escaped.

Using a leading .* in RegEx patterns is an error. Likewise using .* in the middle of a RegEx pattern is also a problem.

(google\.com|yahoo\.com|bing\.com|ask\.com|msn\.com)
simplifies to:
(google|yahoo|bing|ask|msn)\.com

(wp-comments-popup\.php|wp-links-opml\.php|wp-locations\.php)
simplifies to:
(wp-(comments|links|locations)-popup\.php)
and there are several other similar simplifications possible.

The code is quite unreadable in its present form.

lucy24




msg:4378449
 11:09 pm on Oct 23, 2011 (gmt 0)

Oops
(wp-comments-popup\.php|wp-links-opml\.php|wp-locations\.php)
simplifies to:
(wp-(comments|links|locations)-popup\.php)


Let's make that
(wp-(comments-popup|links-opml|locations)\.php)
;)

:: wandering off in search of moderator ::

g1smd




msg:4378455
 11:20 pm on Oct 23, 2011 (gmt 0)

Yeah that's what happens when you have to scroll to the right a very long way to write the answer - and the question is waaaay off the left edge of the screen.

noumaan204




msg:4378477
 1:01 am on Oct 24, 2011 (gmt 0)

I am really sorry about the line thing I didn't know it would show up like this. I tried to edit but it seems like I can't

lucy24




msg:4378484
 1:40 am on Oct 24, 2011 (gmt 0)

There's a time limit on editing, but a moderator with scissors will drift by eventually.

I found by experiment that Opera will break overlong lines. In fact I had to race over to another site and make sure it hadn't resumed the habit of wrapping things that aren't supposed to wrap.

noumaan204




msg:4378601
 10:35 am on Oct 24, 2011 (gmt 0)

@lucy24 I find Opera very difficult to use because sometimes it does not behave like other browsers. Even though in some cases it might be good but unexpected features are an annoyance. So now that lines are readable :)

I need help with only the code after #End Wordpress

are these rules correct?

g1smd




msg:4378799
 6:38 pm on Oct 24, 2011 (gmt 0)

|nintendo\ ds|nintendo| simplifies to |nintendo(\ ds)?|

There are many places where you can optimise like this.

Finally, do NOT add redirects after the rewrites otherwise you will rexpose rewritten paths back out on to the web as new URLs. The redirects must be placed before the very first rewrite.

Global Options:
 top home search open messages active posts  
 

Home / Forums Index / Code, Content, and Presentation / Apache Web Server
rss feed

All trademarks and copyrights held by respective owners. Member comments are owned by the poster.
Home ¦ Free Tools ¦ Terms of Service ¦ Privacy Policy ¦ Report Problem ¦ About ¦ Library ¦ Newsletter
WebmasterWorld is a Developer Shed Community owned by Jim Boykin.
© Webmaster World 1996-2014 all rights reserved