Consolidation Loans - Repair Bad Credit - Mortgage - Life Insurance - Online Loans

PDA

View Full Version : Help with mod_rewrite?


Owlcroft
Mar 23rd 2004, 4:16 pm
My domain is hosted on an ISP. That ISP assures me that the mod_rewrite module is available, and that I can use it from an .htaccess file in my directory.

Here are the data, and what I am trying to do; I hope someone can tell me exactly how to do it.

The actual address of the directory in which the top-level files for the site exist is:

/usr/home/ewalker/public_html/validsff

The directory in which the php file at issue resides is one down:

/usr/home/ewalker/public_html/validsff/PHP

The URL that is directed into the top-level directory is:

http://greatsfandf.com

What I want to do is to transform a call that looks like this:

http://greatsfandf.com/XX/yyyyyyyyyy.html

(where XX is one of six possible two-letter upper-case alphabetic codes, and yyyyyyyyyy is a ten-character upper-case alphanumeric code) into this call:

http://greatsfandf.com/PHP/
onebook.php?natl=zzzzzz&asin=yyyyyyyyyy

[line split to fit screen]

(where zzzzzz is some text uniquely determined by the value of XX).

I assume I will want six rules, one for each posible value of XX.

I have tried various permutations of text in the .htaccess file, but none have produced anything but a 500 error. The last lines I tried--using "UK" for XX and what you see below for zzzzz--looked like this:

RewriteEngine on
Rewrite Base /usr/home/ewalker/public_html/validsff
Rewrite Rule ^/UK/[A-Z0-9]{10}.html$ validsff/PHP/onebook.php?myid=greatsciencfi-21&asin=$2

My guess is that the problem lies in the Base, but I also do not quite understand the caret ^ character, which some articles show and some don't and none explain; nor am I sure if I want $1 or $2.

Help, please?

digitalpoint
Mar 23rd 2004, 4:27 pm
Try this:



<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^X1/([a-zA-Z0-9]+)\.html$ /PHP/onebook.php?natl=Y1&asin=$1 [L]
RewriteRule ^X2/([a-zA-Z0-9]+)\.html$ /PHP/onebook.php?natl=Y2&asin=$1 [L]
RewriteRule ^X3/([a-zA-Z0-9]+)\.html$ /PHP/onebook.php?natl=Y3&asin=$1 [L]
RewriteRule ^X4/([a-zA-Z0-9]+)\.html$ /PHP/onebook.php?natl=Y4&asin=$1 [L]
RewriteRule ^X5/([a-zA-Z0-9]+)\.html$ /PHP/onebook.php?natl=Y5&asin=$1 [L]
RewriteRule ^X6/([0-9]+)\.html$ /PHP/onebook.php?natl=Y6&asin=$1 [L]
</IfModule>

Where Y1 corresponds to the lookup of X1. If asin is unique, could you query it like so?...


<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)\.html$ /PHP/onebook.php?asin=$2
</IfModule>

Then you could have the 2 digits be anything...

- Shawn

Owlcroft
Mar 23rd 2004, 6:49 pm
Thank you, thank you! Works like a prince.

The ASIN is not unique. With Amazon, for books the ASIN is identical to the ISBN, but more than one national Amazon division--the Xn code signifies a given Amazon national division: I could have used some arbitrary single character, but it's more pleasant to have the code meaningful, as with DE or US--can carry a given edition.

Now, one last thought:: if I make almost 7000 of those pseudo-pages, is my ISP likely to get steamed at the hammering the searchbot will probably be handing out as it tries to slurp them up?

I have, at my level of operation, never before given the least thought to my ISP's constraints, but I see that my account type gets 500 MB/day, of which--with this and several other sites, one moderately busy one which is seasonally inactive at present--I am using, it appears, about 110 to 115 a day average. Well, I suppose I might as well just try it and see. . . .

Thanks again.

digitalpoint
Mar 23rd 2004, 7:04 pm
I doubt your spider traffic will skyrocket too much. It's not like they will spider it daily... So unless your ISP is REALLY anal, I think you would be fine.

- Shawn

Owlcroft
Mar 23rd 2004, 7:26 pm
Well, at least I will be reminded to check all those neat graphs and such that are provided me.

As a sidebar: it occurred to me that there is another way to deal with the matter; it is somewhat less efficient, but would work. That alternative is to create one real shtml file for each pseudo-page, then make that pseudo-page simply an shtml virtual include of the php file, with appropriate parameters. I was quite surprised to find that a php file could be included by shtml as its virtual include, but I tried it and it worked. (I realize now that I didn't try it with passed parameters in the virtual-include URL, but I'd bet that works too.)

Remarkable the odd things one discovers when playing about. (OK, OK, I suppose everyone else has always known that: but it was news to me.)

Let's see how quickly Google sees my extra new 6812 pages, and what they do to my serp. . . .