Forum Moderators: phranque
RewriteCond %{REQUEST_URI} (.*)search\.htm [NC]
RewriteRule ^.*$ - [G,L]
RewriteCond %{REQUEST_URI} (.*)(\+)*(.*)search\.htm [NC]
RewriteRule ^.*$ - [G,L]
RewriteCond %{REQUEST_URI} (.*)(\%20)?(.*)search\.htm [NC]
RewriteRule ^.*$ - [G,L]
RewriteRule \+ - [G,L] such static URL is most likely invalid, too: it would result in Apache trying to serve the part of the URL before the "+" as a file/directory name
%{THE_REQUEST} \+.*search\.htm given /word1+word2-search.htm it still 301 redirects to /word1 , then sends 404
I don't get where the redirect is coming from.This must be internal Apache 2 feature. The URL with the sign used to work in Apache 1.3 and I have looked at both the .htaccess and the httpd.conf and there's nothing in either of the configs that would instruct to make that redirect.
You can use spaces; they just don't travel well.I don't believe actual spaces travel at all - the browser converts them to %20 or to "+", so Apache never sees an actual space. By the way, "%20" in a URL works just fine, it's only the plus sign that's a trouble.
Looks like there's no other way but to rename the file which now happens to be called '600+.shtml' into '600plus.shtml' and update the links to it.
You should read RFC 2616, the HTTP/1.1 specification.