Forum Moderators: phranque

Message Too Old, No Replies

Issue with htaccess redirection Options

         

passmaster16

2:50 pm on Oct 3, 2008 (gmt 0)

10+ Year Member



Hi,

I have a Joomla based CMS website installed in a subdirectory of the root of my public folder. I did this because I wanted to keep the Joomla CMS content organized and separate from the other directories and files that are in the root. Now, I set up a 301 redirection using .htaccess in the root that forwards everything to my subdirectory. I was able to use the code which I found [on the Web] which not only does the redirect, but also masks the Joomla folder so instead of http://www.example.com/joomla, it just shows http://www.example.com as the URL which is exactly what I want (I don't want users having to see the subdirectory appended to the URL). This all works fine except that the redirection breaks access to any files/directories that exist in the root. For example, I have a directory named MP3 that resides in /public_html/MP3 but is now inaccessible due to the rewrite code redirecting to /public_html/joomla. I assumed this would be the case as everything would now be redirected to the new "virtual" location. Is there a way to modify the code in the .htaccess file to still allow requests to directories/files that are above the joomla subdirectory level?

the code is below

*** Code Start ***

Options +FollowSymLinks
RewriteEngine On
RewriteBase /

# This section must come first!
# Add trailing slash if path does not contain a period or end with a slash
RewriteCond %{REQUEST_URI} !(\.¦/$)
RewriteRule (.*) http://www.example.com/$1/ [R=301,L]

#Change http://example.com to http://www.example.com (Optional)
RewriteCond %{HTTP_HOST} ^example.com$
RewriteRule ^/?(.*)$ http://www.example.com/$1 [R=301,L]

#Rewrites http://www.example.com/subdir to http://www.example.com/
RewriteCond %{REQUEST_URI} !^/subdir
RewriteRule ^(.*)$ subdir/$1 [L]

*** Code End ***

I am a noob when it comes to using htaccess and rewrites. I'd also be open to not using htaccess at all and find another way to forward the traffic while still hiding the URL and making root level files and folders available. As far as I know, my host does not provide any vhost configuration through cPanel. Thanks in advance for any assistance you may be able to offer.

[edited by: jdMorgan at 3:23 pm (utc) on Oct. 3, 2008]
[edit reason] Please use example.com [/edit]

jdMorgan

3:19 pm on Oct 3, 2008 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



The comment on this section is incorrect and misleading, so here's the correction:

# Rewrite http://www.example.com/ to http://www.example.com/subdir
RewriteCond %{REQUEST_URI} !^/subdir
RewriteRule ^(.*)$ subdir/$1 [L]

It's a common misconception, that plays a role in your problem.

Mod rewrite takes an incoming URL-path, as requested by the client as the result of a link on one of your pages, and either rewrites it to a non-default internal filepath or redirects it to a different URL.

That said, you have several choices: You can exclude certain subdirectories from being rewritten by adding them as ORed terms to the RewriteCond pattern in this rule, or you can check to see if the requested URL-path actually exists in the root directory, and skip the rewrite if it does.

The first method is *far* more efficient than the second, but require maintenance if you add files or directories to your root directory.

A third method --it's not clear if you could use it-- is to rewrite only if the requested URL contains no subdirectory path-part. In other words, don't rewrite *any* URL-path that looks like /<any-subdirectory>/<something>. This may take some work, because you have apparently added trailing slashes to your filenames, counter to the HTTP spec. So <something> in my example URL template must be non-blank.

Jim

passmaster16

5:41 pm on Oct 3, 2008 (gmt 0)

10+ Year Member



Thanks for your quick reply. OK, so I modified the code below to exclude the MP3 directory I talked about in my first example. Are there any problems with this code? It seems to do what I need to do for this directory. It shouldn't be an issue for me to exclude individual directories or files because I don't anticipate on hosting much content outside of Joomla.

Also, is there any SEO penalty for using this strategy for redirection? It seems that everything that I read about 301 redirects indicate that they are search engine friendly. If not, I'd have to go back to my hosting provider to see if they can do anything to provide a virtual host.

Modified code below

*** Code Start ***

Options +FollowSymLinks
RewriteEngine On
RewriteBase /

# This section must come first!
# Add trailing slash if path does not contain a period or end with a slash
RewriteCond %{REQUEST_URI} !(\.¦/$)
RewriteRule (.*) http://www.example.com/$1/ [R=301,L]

#Change http://example.com to http://www.example.com (Optional)
RewriteCond %{HTTP_HOST} ^example.com$
RewriteRule ^/?(.*)$ http://www.example.com/$1 [R=301,L]

# Exclude MP3 directory in root
RewriteCond %{REQUEST_URI} ^/MP3/ [OR]

# Rewrite http://www.example.com/ to http://www.example.com/subdir
RewriteCond %{REQUEST_URI} !^/subdir
RewriteRule ^(.*)$ subdir/$1 [L]

*** Code End ***

passmaster16

7:17 pm on Oct 3, 2008 (gmt 0)

10+ Year Member



I correct my last post, the

RewriteCond %{REQUEST_URI} ^/MP3/ [OR]

code did not work. What am I doing wrong?

jdMorgan

7:24 pm on Oct 3, 2008 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



You need to use the NOT operator "!" -- to do the rewrite only if the requested URI does NOT start with /MP3/

You can exclude both /MP3/ and /subdir/ using only one RewriteCond:


RewriteCond %{REQUEST_URI} !^/(MP3¦subdir)/

and add any more subdirectory paths that you want to exclude in the same way.

Important: Change the broken pipe "¦" character in that pattern to a solid pipe character before use; Posting on this forum modifies the pipe character.

Jim

passmaster16

7:50 pm on Oct 3, 2008 (gmt 0)

10+ Year Member



Thanks Jim. That worked beautifully. I originally tried the NOT operator but must have not used the correct syntax.

Let me just verify for my future reference.

1.) I was reading the Apache documentation, and just wanted to verify that the rewrite conditions are additive unless [OR] is explicitly used?
2.) You mentioned about trailing slashes in filenames. My filenames do not have trailing slashes so should I remove the trailing slash from the first rewrite rule?

jdMorgan

9:15 pm on Oct 3, 2008 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



1) Lack of an OR operator implies an AND operator.

2) That depends on what URLs (not filenames) you're talking about. If you use extensionless URLs, then you should disable that rule entirely (comment it out and then test before deleting it). Of course, since it requires that the requested URL NOT contain a period in the final path-part and that it NOT end with a slash, URLs referring to files such as robots.txt or logo.gif, and directory index URLs are not affected by that rule as it stands.

Note that I emphasized using the term "URLs" and not "filenames" -- To avoid massive headaches and potentially-disastrous misunderstandings, do not mix up these two terms, as they mean entirely different things (as using mod_rewrite for internal URL-to-filename rewriting makes clear). It's probably obvious that actual filenames *must* have extensions, otherwise the server would have no idea what Content-Type header it should send with those files' contents.

Keeping these two terms separate and understanding that they are different and apply to two different namespaces is critical; They refer to associated names for an object --one on the Web, and one within the server's file system-- but they do not refer to equivalent names.

This may sound pedantic, but in truth, understanding the meaning and scope of these two terms makes understanding rewrites (and servers, and even the Web itself) a whole lot easier; The purpose of a URL is so that the client (browser) does not have to know the file-naming conventions of the operating system on which the server is running in order to make a successful request.

It also allows us, as Webmasters, to change from an IIS server to an Apache server (or vice-versa) without changing the URLs (except in those situations where character-case issues arise due to the fact that Windows is not case-sensitive, while *nix is, and link-case errors forgiven by Windows will cause problems on *nix). If we used filenames on the Web, you'd also have to know what disk the file was on, and you'd never be able to move it to a different disk! A URL is a server-agnostic name for an object, and than object is either stored in a file, or is generated by a script but appears to be stored in a file.

Jim

passmaster16

9:43 pm on Oct 3, 2008 (gmt 0)

10+ Year Member



Thanks for the in-depth explaination.

One more issue that I'm having. I was trying to exclude certain file types in the root as well.

When using this code:

RewriteCond %{REQUEST_URI} !^/(.*\.(ico¦gif¦jpg¦png))

It properly excludes the file types in the root but breaks the paths to the existing file types (images) in the /public_html/joomla directory/subdirectories. I thought that !^/ at the beginning of the parenthesis would specify to only apply for requests to these file types at the root level.

jdMorgan

10:30 pm on Oct 3, 2008 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



You will also be a much happier person if you avoid the use of the ".*" pattern, when something much more specific is needed or can be used. Your pattern accepts image requests for *any* directory level, because ".*" matches "anything, everything, and nothing". Try:

RewriteCond %{REQUEST_URI} !^/[^/]+\.(ico¦gif¦jpg¦png)$

by excluding any slash but the first from matching, we guarantee that any matched URLs are for objects at Web root level, since another slash would mean a sub-directory-path-part was present in the requested URL-path.

Since you've probably not been following along for very long, you should know that I'm on a crusade to banish the easy-to-understand, but very-greedy, ambiguous, and promiscuous(1) ".*" pattern from servers world-wide... ;)

It should be used only when "anything, everything, and nothing" is meant.

Jim

1) These characteristics also mean that multiple ".*" sub-patterns in a regular-expressions pattern can lead to many, many "trial fits" of the requested string against the pattern, leading to very inefficient processing and very long execution times. I suspect that many Webmasters are forced into expensive server or hosting account upgrades for this reason alone.

[edited by: jdMorgan at 11:42 pm (utc) on Oct. 3, 2008]

passmaster16

8:50 pm on Oct 4, 2008 (gmt 0)

10+ Year Member



Thanks again, That worked perfectly.

How would I handle a situation where I have a directory in the root with the same name as a directory in my joomla subdirectory? For example, I have a directory named images in the root but I also have the same directory in the joomla subdirectory. I'd like to exclude images in the root from rewrite without impacting requests for the images directory in the joomla directory.

The following code seems to exclude images in both directories which is not what I want.

RewriteCond %{REQUEST_URI} !^/(images)/

How do I make it only apply to the images folder in the root only?

jdMorgan

9:03 pm on Oct 4, 2008 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



That RewriteCond pattern won't match anything but the /images subdirectory of root, so your Joomla images subdirectory will be unaffected (the rule will still apply to it). Did you completely flush your browser cache before testing new code?

No need for the parentheses either, since no back-reference is needed, and no quantifier is applied.

Jim

passmaster16

9:23 pm on Oct 4, 2008 (gmt 0)

10+ Year Member



That's what I thought. I assumed the forward slash / as in /images would only apply to the images folder in the root. Yet I try using the following

RewriteCond %{REQUEST_URI} !^/images

which properly excludes images folder in the root but is also breaking the /joomla/images I'm wondering if the .htaccess that is used in the joomla directory could be causing an issue

passmaster16

9:35 pm on Oct 4, 2008 (gmt 0)

10+ Year Member



So after looking at it closer, the random image module in joomla wants to use two slashes as in http://www.example.com//images/subdir/randomimage.jpg When I manually enter the extra slash, the image shows up, but without it, the image is not found. It only impacts this module as my other images show up fine. I should not that I originally had this issue before I added the images exclusion and the way that I fixed it was to go into the images module and change the referenced folder from "/images/subdir" to "images/subdir" but now this fix does not work when I add the exclusion for the images directory in the root. Any ideas?

g1smd

9:39 pm on Oct 4, 2008 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member Top Contributors Of The Month



The implementation with // in it is broken, and it is best to try to fix that rather than try to work around it.

passmaster16

9:53 pm on Oct 4, 2008 (gmt 0)

10+ Year Member



OK, I fixed the first issue with the double slash. The module is able to reference the image using the following format http://www.example.com/images/subdir/randomimage.jpg however once I add the exclusion code RewriteCond %{REQUEST_URI} !^/images to .htaccess, it breaks the image module. When I view the location of the broken image, it shows the proper path of http://www.example.com/images/subdir/randomimage.jpg yet adding the extra slash to the end of .com makes the image appear. Not sure what else to try.

jdMorgan

10:40 pm on Oct 4, 2008 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



Use the "Live HTTP Headers" add-on for Firefox/Mozilla browsers to find out which /image URLs "work" and which don't. mod_rewrite looks only at the URL requested by the browser, and you need to find out what URL Joomla actually requests with and without the double slash in the source.

A quick-fix might be to change the pattern in your RewriteCond to !^//?images/ so that it accepts either one or two slashes. But I don't know if that's going to work, even as a band-aid.

You do need to get to the bottom of the problem, and get the Joomla people to fix it -- Redirects and rewrites can help, but they cannot cure a fundamentally-erroneous URL.

Jim

[edited by: jdMorgan at 10:41 pm (utc) on Oct. 4, 2008]

jdMorgan

10:57 pm on Oct 4, 2008 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



Please re-post the code so we can see what you're currently testing, and then provide a short list of URLs that should and should not be rewritten to add "/subir" to the path used to resolve them. Please include both /images and non-/images examples, so we get a complete picture here.

Jim

passmaster16

7:33 am on Oct 5, 2008 (gmt 0)

10+ Year Member



I really think that Joomla is confusing these two images directories when I enable the root images directory exclusion. After going back and checking again, the only images that work are ones that are available in the photo gallery (so not Joomla native code). I'm thinking the reason for this is the photo gallery uses the full path, src=www.example.com//images/subdir/randomimage.jpg (yes it is using two slashes, not sure why that plugin does that, but I fixed the behavior in the other pages). In the locations that the images don't work, the path is src=/images/subdir/randomimage.jpg The images being used for the photo gallery and random frontpage image are both coming from the same /Joomla/images/subdir path so I know that access is available.

I used the Firefox plugin to compare the headers from when the image is successful (when RewriteCond %{REQUEST_URI} !^/images is removed from .htaccess) vs when it is not. In both cases, the headers indicate the same: GET /images/subdir/randomimage.jpg

It almost appears that somehow, despite the fact that the .htaccess file is located in the root (public_html) directory, that the exclusion is still being applied to the /Joomla/images folder in addition to the /images folder it was originally intended for. I'm thinking this extra slash, or lack thereof has something to do with it but I don't know where it's coming from. I tried changing Joomla's varriable $live_site = 'http://www.example.com'; to $live_site = 'http://www.example.com/'; but did not make a difference.

In Joomla, I also tried fooling around with setting the images path with using //images/subdir, /images/subdir, and images/subdir. All with the same result.

I tried using !^//?images/ as you suggested but it did not work. In fact, it also broke the functioning images in the photo gallery.

Just to recap

1.) All is fine when I remove RewriteCond %{REQUEST_URI} !^/images from .htaccess but obviously I need this to exclude content in the images directory in the root.
2.) Once I include RewriteCond %{REQUEST_URI} !^/images it properly excludes the content in the /images directory, but also appears to impact references to /Joomla/images as well.
3.) The only instance where it does not impact /Joomla/images is for a third party Joomla plugin used for a photo gallery.
4.) This plugin works fine with or without RewriteCond %{REQUEST_URI} !^/images
5.) In both cases, the images are pulled from the same place, /Joomla/images/subdir
6.) The image src path for the broken images is /images/subdir/randomimage.jpg whereas the photo gallery plugin uses www.example.com//images/subdir/randomimage.jpg (two slashes)
7.) If I right click on the broken image, www.example.com/images/subdir/randomimage.jpg is displayed. If I add an extra slash to it as the photo gallery plugin has, the image is displayed
8.) The headers for both working and non-working scenarios show GET /images/subdir/randomimage.jpg

The code that I'm using is below.

Options +FollowSymLinks
RewriteEngine On
RewriteBase /

#Change http://example.com to http://www.example.com (Optional)
RewriteCond %{HTTP_HOST} ^example.com$
RewriteRule ^/?(.*)$ http://www.example.com/$1 [R=301,L]

# Exclude the following directories
RewriteCond %{REQUEST_URI} !^/MP3
RewriteCond %{REQUEST_URI} !^/images

# Exclude the following file types in the root folder
RewriteCond %{REQUEST_URI} !^/[^/]+\.(gif¦jpg¦png)$

# Rewrite http://www.example.com/ to http://www.example.com/subdir
RewriteCond %{REQUEST_URI} !^/Joomla
RewriteRule ^(.*)$ Joomla/$1 [L]

I will also post the code for the .htaccess file that is located in the Joomla directory. I do not think it is causing any issue here. If anything, this issue probably has to do more with the Joomla php code than anything. But just in case. Notice there is an SEF section but the broken image behavior is the same regardless of if SEF is enabled or not.

RewriteEngine On

########## Begin - Rewrite rules to block out some common exploits
## If you experience problems on your site block out the operations listed below
## This attempts to block the most common type of exploit `attempts` to Joomla!
#
# Block out any script trying to set a mosConfig value through the URL
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=¦\%3D) [OR]
# Block out any script trying to base64_encode crap to send via URL
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]
# Block out any script that includes a <script> tag in URL
RewriteCond %{QUERY_STRING} (\<¦%3C).*script.*(\>¦%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL
RewriteCond %{QUERY_STRING} GLOBALS(=¦\[¦\%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL
RewriteCond %{QUERY_STRING} _REQUEST(=¦\[¦\%[0-9A-Z]{0,2})
# Send all blocked request to homepage with 403 Forbidden error!
RewriteRule ^(.*)$ index.php [F,L]
#
########## End - Rewrite rules to block out some common exploits

# Uncomment following line if your webserver's URL
# is not directly related to physical file paths.
# Update Your Joomla! Directory (just / for root)

# RewriteBase /

########## Begin - Joomla! core SEF Section
#
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{REQUEST_URI} (/¦\.php¦\.html¦\.htm¦\.feed¦\.pdf¦\.raw¦/[^.]*)$ [NC]
RewriteRule (.*) index.php
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
#
########## End - Joomla! core SEF Section

[edited by: jdMorgan at 1:24 pm (utc) on Oct. 5, 2008]
[edit reason] example.com [/edit]

jdMorgan

1:50 pm on Oct 5, 2008 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



I have no concept of the meaning of the terms "plugins" and "galleries" with respect to the exclusion problems. All I (and mod_rewrite) need to know about are the URL-paths requested by the client browser.

That said, you've mislead me in saying that you want to exclude the subdirectory "images" off root, so that those images are not rewritten, but the Joomla images are.

In fact, based on the URL-paths you posted, *all* images are apparently located in or below the /images subdirectory -- including the Joomla-controlled images. So the problem is not with the code, but with the definition of the goal of the code.

There is no "magic" in mod_rewrite: A correct pattern won't mysteriously match an unexpected URL - ever. If something unexpected happens, then either the pattern, the logic, or the definition of the goal of the code and the pattern(s) are wrong.

In this case, it looks like it will be necessary to assess "directory levels" in order to exclude /images/image.jpg from being rewritten, but not exclude /images/some-dir/image.jpg from the rewrite. You do that by looking at the slashes in the local URL-path:


RewriteCond %{REQUEST_URI} !^/images/[^/]+$

That regex pattern will match, get negated (by the "!" NOT operator), and therefore prevent a rewrite only if there are no additional subdirectory levels below /images in the URL requested by the client.

Jim

g1smd

2:00 pm on Oct 5, 2008 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member Top Contributors Of The Month



It was mentioned that these two folders exist:

/images/subdir/
/Joomla/images/

but I have been somewhat confused by the question too.

passmaster16

5:54 pm on Oct 5, 2008 (gmt 0)

10+ Year Member



Sorry for the confusion. Let me try to clarify.

I have a Joomla directory in the root, /public_html/Joomla. The original intent was to mask the fact that I was using Joomla by making www.example.com/Joomla appear as www.example.com to the user. This is working. But the other issue is there is some old content that resides in the root that needs to be accessed.

Images that are used within the new Joomla site would be located in /public_html/Joomla/images/subdir For the Joomla site, all images are pulled from the same place. It just so happens that photo gallery requests a full path www.example.com//images/subdir/randomimage.jpg whereas other Joomla components use /images/subdir/randomimage.jpg. I believe this is why the photo gallery images still work even after adding the /images exclusion while the others break.

There is also a /public_html/images directory that is used by an existing webpage that resides the root. I do not want this directory to be affected by the rewrite.

/public_html/Joomla/images/subdir and /public_html/images are two separate paths that hold images. Joomla has it's own images subdirectory and the root has its own images subdirectory. All I want is for images in the root images folder to work with an existing webpage that also resides in the root. I know how to exclude the webpage itself RewriteCond %{REQUEST_URI} !^/example.htm and this works and I've also excluded other root level subdirectories that this webpage uses without issue. So the problem only comes into play on excluding this images subdirectory in the root.

Thanks for all you help so far.

g1smd

5:59 pm on Oct 5, 2008 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member Top Contributors Of The Month



I wish the clarity of explanation had been that good right back in the very first post.

I think jd got more out of your initial explanation that I did, hence why I held back from posting in this thread.

It is *crucial* to distinguish between folders and paths on the server in the filesystem, and those that appear externally in URLs.

The whole basis of redirects and rewrites absolutely hinges on it.

passmaster16

6:08 pm on Oct 5, 2008 (gmt 0)

10+ Year Member



I agree that I was a bit vague. Actually if it was up to me, I would not use directories of the same name in any scenario, but since I'm not the one who originally created the site, I can't really move/change anything. I'm just trying to make the new site work while not breaking what was already there. Admittedly, I'm not an Apache or *NIX person by trade. In fact I'm not even a webmaster by trade. This is a "volunteer" job that I'm helping a nonprofit org trying to get a new site up and going.

Thanks

jdMorgan

7:16 pm on Oct 5, 2008 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



Now, from your most-recent explanation, what is the actual name of "subdir"... is it Joomla, or something else?

We ask posters here to use example.com and only example.com as a domain (since that domain can never be owned and was defined by IANA for the purpose of enabling "safe" coding and linking examples), but you are free to post actual pathnames, as long as they do not contain adult terms or terms which might uniquely-identify your site (and so open it up to review or attack by competitors, etc.)

Jim

passmaster16

7:39 pm on Oct 5, 2008 (gmt 0)

10+ Year Member



I probably should have posted the actual names a long time ago. Sorry I wasn't sure of your policy on posting directory names. Anyway, here we go.

The full path to the Joomla image location is /public_html/Joomla/images/rsgallery/original/ which is used for all images within the Joomla site

The other images folder which is used by the old site is simply /public_html/images/ so the images directory is directly in the root

jdMorgan

9:39 pm on Oct 5, 2008 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



And again, what corresponds to the "subdir" you've specified in several posts?

And have you tested the modified exclusion I provided above?

Jim

passmaster16

1:00 am on Oct 6, 2008 (gmt 0)

10+ Year Member



subdir in my example would correspond to the rsgallery directory.

I tried your modified exclusion and it appears to work. My question is why wouldn't have I needed to do the same for any of the other directories in the root, for instance I have an /public_html/MP3 and I used this exclusion RewriteCond %{REQUEST_URI} !^/MP3 which works fine. Is it just the matter that I have two directories with the same name, images?

jdMorgan

2:48 am on Oct 6, 2008 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



The simple answer is that the pattern was wrong because my understanding of your description was wrong. It's also a bit hard to keep track of thread specifics from day to day, and in addition to all the other projects I'm working on...

The root cause of the trouble is the fact that the gallery stored and/or accessed files in a subdirectory (i.e. /images/rsgallery) of the same /images directory we were trying to exclude.

The take-home lesson is that problems must be well-defined in terms of requested URLs and their desired dispositions before any coding is started -- and secondarily, that computers do exactly what you say, and not necessarily what you want... ;)

Jim

passmaster16

3:10 am on Oct 6, 2008 (gmt 0)

10+ Year Member



Thanks for all your help Jim. I really do appreciate it.