Chemistry Lab University of Washington Computer Science & Engineering
 UW CSE Creating and Modifying "Home Pages"
  CSE Home   About Us    Search    Contact Info 

 UW CSE WWW FAQ
 HTML Home Page
(at W3 Consortium)
 HTML 4.0 Specifiation
 HTML Primer
 WWW Security FAQ
 Apache Users Guide
(web server software)
   

What is a "Home Page" ?

A "home" page is nothing more than a text file, containing text and HyperText Markup Language (HTML) commands, which are themselves nothing more than text surrounded by angle brackets (< and >).

Good HTML files always have the following basic structure:

<html>
<head>
<title>
      the title of your document should go here
</title>
</head>
<body>
      the text of your document should go here
</body>
</html>

Where is my home page stored ?

The table below shows the directory in which you should keep your home page. You should replace userid with your own user id (login name) to get a real directory name.

Category Canonical Name Familiar name
faculty /cse/www/people/faculty/
or
/homes/gws/userid/www/
 
~/www/ on GWS
full-time grads /homes/gws/userid/www/ ~/www/ on GWS
PMP grads /homes/iws/userid/www/ ~/www/ on IWS
technical staff /homes/gws/userid/www/ ~/www/ on GWS
admin staff /homes/gws/userid/www/ ~/www/ on GWS
ugrads /homes/iws/userid/www/ ~/www/ on IWS
guests (incl. affiliate fac.) /homes/gws/userid/www/ ~/www/ on GWS

Faculty are welcome to copy or move the file from the "central" directory- almost all have- but please tell webmaster@cs that you've done so, since the server will need to be updated so that people looking for you in the "faculty" area can still find the most current version of your home page.

The actual filename is up to you, although index.html is the most common choice. However, see the section on the index file.

In almost all cases, your web content is hosted on a file server, and served by a distinct web server, which gets to the files via NFS, facilitated by an automounter. That means that changes to your content are immediately reflected in what's served, and that both hosts and the intervening network need to be healthy for the content to be served.

GWS vs. IWS These acronyms stand for 'Grad Workstation' and 'Instructional Workstation,' respectively. The nomenclature is very old, and has unfortunately become a little bit of a confusing misnomer. In particular PMP students are certainly graduate students, but their home directories, being on instructional systems, are mapped to 'iws.' Different names would be chosen today, but changing it now would be a highly disruptive and time-consuming task, not least because "gws" is embedded in thousands if not tens of thousands of symlinks across hundreds of machines.

In case you were wondering how or what host to log into (or to copy your files to), you may find this "I need help logging in" entry in the Support FAQ to be useful.

What content is/is not suitable for a home page hosted on a UW CSE machine?

The answer to this differs somewhat depending upon your role at the University.

If you are an employee of the University-- faculty or staff-- your content should be restricted to that directly related to your job function. A strict interpretation of policy would forbid anything of a personal nature.

If you are a student, policy is less severe with regard to personal content.

Under no circumstances, though, can any user use University equipment for anything that could be construed as commercial purposes, such as offering items or services for sale, or for partisan political purposes, or for unauthorized distribution of copyrighted materials.

Here are relevant links to documents offered by the University of Washington:

How can I safely offer an email link on my page?

We used to encourage people to put their email address on home pages, but that was before robots started harvesting those addresses for spam-sending purposes. If you'd like to offer a link for sending email, we think it safe to do so by linking to our email-sending CGI script, which doesn't require you to put your full email address on your page. Here's an example of how to link to that so that mail is sent to user farnsworth with a subject of Hello, friend:

  <a href="/htbin-post/unrestricted/mailto2.pl?to=farnsworth;sub=Hello,+friend">Email me!</a>

As you can see, that's anchored on the words Email me!.

How do I get listed in the directories of (under)graduate students ?

The CSE web includes lists of the faculty, staff and students in the department. There are internal and public versions of each student directory. The internal version is accessible to all students in your own program, and the public version is accessible to anybody.

To protect your privacy (and to comply with federal privacy legislation), we allow you to control which (if any) of your personal information is displayed. To do so, please visit the internal directory page corresponding to your program: http://norfolk.cs.washington.edu/htbin-php/students/ugrad/ for undergrads, http://norfolk.cs.washington.edu/htbin-php/students/grad/ for full-time graduate program students, or http://norfolk.cs.washington.edu/htbin-php/students/pmp/ for professional masters program students. There, you will find a link to a form you can fill out to set your directory display preferences.

How do I get my home page listed in the index for [staff, faculty] ?

The faculty and staff indices are maintained automatically. Please send mail to webmaster if you find that you should be but are not yet listed in the appropriate index.

How do I get my home page to be the default page for my web ?

When somebody tries to load a document specified by the URL that points to a directory, such as:

     http://www.cs.washington.edu/homes/youruserid/
our HTTP server will look for a file in that directory called index.html, which is intended to act as index to the web "below" it. If this file does not exist, our server will deny access to that directory.

If you want your home page to play the role of this "index file", then you can either rename it or link it to the name index.html:

    % cd /homes/gws/userid/www
    % ln -s home.html index.html
(you should replace userid with your own userid, of course).

You might want to have an alternate file as the index, since you might have areas of your own web that you'd like to point people at, which is not really the function of a home page per se. The contents of an index file are up to you, but it must be called index.html. It is an HTML file just like your home page, and probably makes strong use of the construction:

    <ul>
    <li> <a href="subdirOfmyWWWdir/name.html">Something Great</a>
    </ul>

Note the use of a "relative" URL above. By using this, instead of an absolute form (which would start with something like "http:"), you are creating a link to a document whose location is inferred relative to the one in which the link appears. This ensures that the links to your other documents remain valid even if your tree moves (or if the webmaster rearranges the top level of our web).

How do I make my home page accessible to viewers outside the CS department?

By default, home pages are accessible only to viewers running on machines in the cs domain. If you would like to make your home page accessible to others, you'll need to add a special file to your personal web area to define access permissions. This file should be named .htaccess. To make your personal web available to all viewers, put the following in this file:

   order deny,allow
   deny from none
   allow from all 

For more detailed information, see the main faq. For really detailed information, see Controlling Access to Your Documents.

[By far the most common error that people make when setting up .htaccess files is to specify the argument to the order directive as deny, allow instead of deny,allow. That extra space means that Apache sees two tokens it doesn't understand instead of one token that it does, and the result is a 500 Server Error.]

I already have a home page somewhere else that I'd rather send my reading public to. What's the best way to deal with that?

Because the index of home pages is generated automatically and frequently, there is no good way to get your entry to point to your other home page. A simple solution that some people use is to create a home page with little content other than a link to their "real" home page, but some find that that solution lacks elegance. Don't despair, however; redirect comes to the rescue!

A redirect is a feature of the HTTP protocol that the web is built upon. It's a way of saying to the web browser, "you asked for this, but you really want that." There are a couple of ways to do this:

  1. You can add a "meta" tag to the <head> of your HTML file. That has the advantage that you may specify a delay before the new page loads, which allows you to display a page with an informative message so that people are aware that the redirect is taking place. The downside is that it doesn't work with older browsers. Really old browsers.
  2. You can add a directive to your .htaccess file that performs the redirect. That has the advantages that (1) it works with every browser and (2) it redirects for all the files in your directory-- not just those HTML files to which you add the meta tags.

Let's presume that your local URL is http://www.cs.washington.edu/homes/buffy/ and that your remote URL is http://www.offsite.com/~buffmaster/. To implement option 1 with a four-second delay before the redirect takes effect, add the following tag to the <head> of your index.html file:

  <meta http-equiv="refresh" content="4; URL=http://www.offsite.com/~buffmaster/">
Here's an example of an entire index.html file that implements this approach:
  <html>
  <head>
    <title>Buffy's Four-second Home Page</title>
    <meta http-equiv="refresh" content="4; URL=http://www.offsite.com/~buffmster/">  </head>
  <body>
   <p>Thanks for stopping by, dude.  But my home page has, like, <em>moved</em>
    to the web site of my new employer, <em>Offsite Communications</em>.  If
    you have a reasonably recent browser, you'll be headed there about 
    <b>now</b>, but if you are still in the dark ages, click 
    <a href=http://www.offsite.com/~buffmaster/>here</a>.
  </body>
  </html>
To implement option 2, add the following content to your .htaccess file:
  Redirect permanent /homes/buffy/ http://www.offsite.com/~buffmaster/

How do I include links to papers or TR's I've published ?

[NB: technical reports have become anacronistic. They are rarely issued now that the web has become pervasive.]

The URL for a TR stored in the TR archive on June is simply the normal FTP pathname of the TR, prefixed by ftp://ftp.cs.washington.edu.

The FTP pathname is usually simply a concatenation of:

  • tr/ (the Technical Reports directory)
  • the year the TR was published, as 4 digits, followed by /
  • the month the TR was published as 2 digits, followed by /
  • the TR official number (e.g. UW-CSE-94-08-03
  • .PS (to indicate that its a PostScript file)
  • .Z (to indicate that its compressed using the compress(1) program).
So, to include a link to a TR #UW-CSE-94-08-03, stored as a compressed PostScript file, include the following:
  <a href=ftp://ftp.cs.washington.edu/tr/1994/08/UW-CSE-94-08-03.PS.Z>text for the link</a>
To include a link to a paper stored in your own web as DVI file:
  <a href=http://www.cs.washington.edu/homes/userid/some_path.dvi>text for the link</a>
You might want to read more information on how URL's and filenames relate to each other.

How do I get my .plan file to show up on the WWW ?

You may have useful contact or schedule information already present in your .plan file, for viewing via the finger command. Rather than duplicate that information, you can include a link to it:

  <a href="http://www.cs.washington.edu/htbin-post/finger/youruserid">
                finger me for schedule information</a>
When this link is followed, a reader will see the same information as they would had they used finger.

Caveats:

  1. Like the command-line version of finger, the service is restricted to browsers from within .cs.washington.edu. Those browsing from outside will be prompted for CSE kerberos login credentials and denied access if they can't provide them.
  2. If you have an "IWS account"- which is what PMP and undergraduates have- use /htbin-post/ifinger instead of /htbin-post/finger
  3. .

Troubleshooting guide

A few common problems:

My page isn't accessible from outside the department.
Read this.

I'm in the index, but when I click on my entry, the webserver gives me an error.
Check the following:
  • Make sure that your web area is not protected such that an unprivileged user wouldn't be able to read the documents there. The webserver needs at least world execute permission on all directories in the path to your web area, and world read permission on any documents therein, including the .htaccess file, if any. Here's how to do that from a Unix prompt:
     % cd ~
     % chmod og+rx www
     % chmod -R og+r www
    
  • If you have a .htaccess file with an order directive in it, make certain that there is no space between the allow and deny. That is, specify either allow,deny or deny,allow, not allow, deny or deny, allow.

I created the .www-publish-me file a few days ago, but I'm still not in the grad/undergrad index.
Make sure that the permissions on your home directory would not prevent an unprivileged user from seeing that the file exists. This will require at least world execute permission on your home directory. Do this from a Unix prompt:
 % cd ~
 % chmod og+x .

You should send email to webmaster about problems which are not on this list.

How do I learn more about HTML ?

HTML, or HyperText Markup Language, is the language used to annotate documents so that they can be presented by WWW browsers in an intelligent way. It is based on SGML, and is conceptually similar to other languages like troff, Scribe and TeX, although with more emphasis on logical rather than visual markup.

There are several ways to learn about HTML. The simplest is to select the "View Source" option of the "File" menu in Mosaic, which will display the HTML file that represents the current document. You can learn a lot about HTML by browsing complicated or interesting examples of documents. There are options to even save the HTML to a text file, so you can use it as a template ("Save As" in the "File" menu, and then select "HTML" as the format).

For a quick overview of most of HTML, we have a local copy of Michael Grobe's concise HTML Primer.

To find out more about HTML, try visiting HTML Resources, maintained by Ken Lavin on the University of Toronto Faculty of Information Studies home page. Links there lead to a wealth of additional information on tools and techniques.

Can I create my own CGI scripts?

The short answer is... "yes!" But probably not on www.cs.washington.edu.

At CSE, we have "a lot of eggs in one basket," in that the main web server is all of these:

  • our face to the world
  • a host for educational course material
  • host for almost all CGI scripts
  • server for all personal home pages

CGI scripts (the acronym is for "common gateway interface") allow users anywhere in the world to run a program on our mission-critical web server. Scary, huh? And, writing such a program that's secure enough isn't particularly easy, as hundreds of bug reports for widely-used canned scripts reveal. Therefore, our policy is to restrict CGI creation on www.cs.washington.edu to technical staff, faculty members, and students writing scripts for research/educational purposes that are explicitly sponsored by a faculty member.

If this is something you need to do, and you meet that criteria, write to webmaster.

For personal CGI scripting, we have abstract.cs.washington.edu. You almost certainly already have an account there. Here is draft documentation on how to use it. Your comments on that document are solicited; please send your cards and letters to webmaster@cs.washington.edu.

Please see The World Wide Web Security FAQ for information on writing secure CGI scripts.

Why didn't you answer my question here?

Because

  • nobody has yet emailed a suggestion that it be included here to me
  • this FAQ is specifically for home page questions, and the answer to yours is already covered in The CSE World Wide Web FAQ, which is wider-ranging


CSE logo Computer Science & Engineering
University of Washington
Box 352350
Seattle, WA  98195-2350
(206) 543-1695 voice, (206) 543-2969 FAX
[comments to webmaster]