Thank you Ivan and Alaro both for the reply. It clarified it when it was
pointed out that the URL encoding's purpose was to allow for characters such
as the ? to be interpreted as a filename character and not a special marker.
For the record:
From what you have said, it turns out there is no problem at my end
afterall, but caused by an unknown client attempting to connect to a
specific page.
I posted the 'problem' because I was seeing 404 errors in my logs. And the
file that was being asked for was a new page that is also the landing page
of a new Google Ads campain that I started. It turns out that the ad is not
encoding the URL, as is correct - I clicked my own ad and it landed on the
right page. I think that Google may be sending a 'cloaked' bot to my site -
but for some reason the bot is using an encoded URL as if it is a filename
(the URL I specified in the ad is not encoded, nor are any links that I give
on my site). Also, normal search results at Google are not url encoded
either.
I guess I can probably do some sort of rewrite rule to rewrite %3F into a
true ? character, since I don't and wouldn't use such a character in filname
or parameter. Or failing that, some sort of redirect or as a final idea,
just a hard-coded file with the unencoded filename. But, first, I guess I
need to find out what the purpose of that bot is, and also if it's
delibarately encoding the URL for a reason or if it's just a bug in the bot.
Thanks,
"Joe Butler" <ffffh.no.spam@hotmail-spammers-paradise.comwrote in message
news:48277324$0$10636$fa0fcedb@news.zen.co.uk...
Quote:
>I think this is an Apache issue, but I'm using php pages on an Apache
>server...
>
The problem is that when a url such as:
>
example.com/?page=whatever
>
is url encoded to:
>
example.com/%3Fpage%3Dwhatever
>
then it appears that Apache is not seeing the %3F as a ? parameter marker,
but rather as the first character of a filename (but in an encoded form).
>
So, if I create a file called ?.php and then use the url:
example.com/%3F.php
>
the actual file called ?.php is called.
>
What do I do to stop this?
>
>