This FAQ contains useful information, but some of it is outdated. Much of it is specific to our site. To get the real skinny, try the Apache User's Guide. See also the CSE Home Page FAQ.
OK, I have the name of a file in our file namespace. How do I figure out what the URL is?
There are lots of reasons for not allowing WWW users to access all of our filesystems. Therefore, only certain areas of our filesystems are visible on the World Wide Web:
~/www).The following table shows how files in each of these areas can be named by a URL:
File: /cse/www/pathname
URL: http://www.cs.washington.edu/pathname
File: /homes/gws/userid/www/pathname (home dirs. on graduate workstations)
URL: http://www.cs.washington.edu/homes/userid/pathname
File: /homes/iws/userid/www/pathname (home dirs. on instructional systems)
URL: http://www.cs.washington.edu/homes/userid/pathname
File: /projects/pathname
URL: http://www.cs.washington.edu/research/projects/pathname
FTP: anonymous FTP as "pathname"
URL: ftp://ftp.cs.washington.edu/pathname
OK, I have the URL for a document in our web. How do I figure out where the file is ?
You should be able to use the description above to determine this.
Note that in cases of URL's beginning withhttp:, you
can simply remove the part that says:
http://www.cs.washington.edu/ and prefix it with
/cse/www. This doesn't necessarily result in the most
efficient way to name the actual file, but it will always work.
How do I get space on our WWW server?
Project-related Webs
If you want space for project-related WWW material, and your project already has a project disk, you are encouraged to use this disk to store WWW-related files. The project disk may already have a top-level WWW area for a project, or you may need to set one up. If you create a new one, let webmaster@cs know about it, and it will be added to the index of research projects.If you don't have a project disk, or want create a web covering material that is relevant to the department, send mail to webmaster@cs, and a directory will be set up for you under /cse/www.
Personal Webs
See the section above on home pages for more information.If you want space for your own personal WWW material, and are a member of the faculty or staff or a full-time graduate student, create a directory called
/homes/gws/youruserid/www. Use/homes/iws/youruserid/wwwif you are a PMP graduate student, or an undergraduate. Any space you use here will count as part of your overall disk usage, and will be subject to any limits on that (if they exist).
I want to write a CGI script. What do I do ?
If for personal use, see User CGI for CSE Users.
If you need to use CGI scripts for some department-related work, the webmaster will create a directory for you in which your scripts can be executed. Without this, it is "impossible" for you to use CGI scripts. By default, access to these CGI scripts is limited to machines within the department only - if you want or need wider access to them than this, then expect to have your program subjected to fairly stringent scrutiny, and the possibility that you will need to rewrite it or modify it before wider access can be granted.
What are the security considerations with CGI?
Books have been written about this topic. Here are some online sources of information:
Can I run my own HTTP server ?
Yes, if you need to. We ask that you discuss running your own server with the CSE Lab staff, first.
How do I create my own home page?
Read these instructions.
How do I control who can read my WWW files?
By default, individual's homepages are not accessible from machines outside of the department. To make your web readable by people elsewhere, you will need an access control file.
This file is called .htaccess, and controls access to
your web document hierarchy (and, if other goo is added, some other
characteristics of the way your content is served). To extend access
to your web files to people beyond the department, you need create a
default .htaccess file in your main WWW directory.
Please make sure your .htaccess file is world-readable; also make sure the last line of the file is newline-terminated, else the server will ignore it.
The most significant aspects of the file's contents look like this:
order deny,allow deny from none
In the example shown, access is granted to any machine, anywhere. A more restrictive version that only allows people from the University of Washington CS department and from the Intel Corporation might look like this:
order deny,allow deny from all allow from cs.washington.edu intel.com
If you want different access controls for subdirectories in your own
web, create a .htaccess file in one or more of the
relevant subdirectories, with the appropriate commands in it.
To read more about access control files, try the NCSA documentation on their HTTP daemon. [NB: we don't run that server, but a derivative of it -- so some details may be off.]
Here is Controlling Access to Your Documents,
a document that covers this same material in a bit more depth, and includes
tools for creating .htaccess files as well as password files
for implementing username/password authentication on you pages.
How do I create effect X in HTML ?
Many people want to use HTML the way they'd use LaTeX, or Word, or Frame or some other document preparation tool. Typically, they'd like to be able to center some text, indent a paragraph or two, or otherwise affect the visual appearance of their document in some specific manner.
This is, alas, a mistake. HTML is a logical markup language, designed only to describe what each part of your document is, and not what it should look like. For instance, although the <h1> element is frequently used to create a large, bold piece of text, what it really says is "this is a level one heading". Similarly, <blockquote> just happens to produce an indented paragraph, but it actually means "this is a large quote".
This is important, because different WWW browsers present each element of an HTML document in their own way. Already, text-only browsers present elements such as <b> quite differently than do some of the window-system based browsers, and more changes are likely down the road as browsers get more sophisticated. Some day, its even possible that the user will be able to specify how they would like particular elements to be rendered; when that happens, what will your carefully kludged document, full of neat ways to use HTML that the designers had never even thought of, look like ?
Given all this, trying to design an HTML document to fit a specific
visual model is unwise. Think hard about the logical structure of the
document, and use HTML to indicate that as best you can. Try
lynx to see what your document looks like on a browser
other than Mosaic. Many of the tricks you can play with Mosaic's
rendering of the various HTML elements will fail to work in lynx,
resulting in a poor, sometimes terrible, appearance. Although lynx is
not exactly the future of the WWW, this kind of effect is. Beware.
How do I get a pointer to my home page added to the list of grad, undergras, whatever?
(Here are the indices of grads, undergrads, faculty, and staff.)
Under http://www.cs.washington.edu/people are a number
of subwebs that contain an index of various categories of people
within the department, such as graduate students, undergraduates,
faculty and staff.
You might expect that you could simply send mail to
webmaster@cs and ask to be added to one of these lists.
Alas, you'd be mistaken.
It is a violation of the University of Washington's privacy regulations for us to disclose your status as a student here. Therefore, we cannot add your name to this list (or remove it) without your explicit permission. However, electronic mail is (1) too time consuming to use for this purpose-- it requires manual intervention on the part of the webmaster for every message and (2) grossly insecure. How insecure is insecure? Lets just say that its possible to fake any sender's address without any special privilege at all.
Because of all this, we use an automated procedure that allows you to automatically add/delete yourself to these listings.
For faculty and staff, the index is generated nightly from a database. There is, of course, no policy against disclosing the identities of faculty and staff. If you have a web page, it will be linked.
How do I get a directory index to happen for a directory?
A directory index is one of those FTP-like listings of a
directory, like that in the screenshot above, that many web servers
present instead of an error when a user asks for a URL that names a
directory that doesn't contain an index.html file. We don't support
those by default because some of our content providers may not wish to
allow anybody with a web browser to view all the files in their www
directory.
We do, however, permit content providers to override this policy.
This is another of the things that, like access control,
can be controlled by a .htaccess file in the directory you
want to configure for it. In this case, the directive looks like this:
Options +Indexes
which means to add the option called "Indexes" to the
containing directory and all subdirectories thereof. If the
+ is omitted, the Indexes option replaces all
the systemwide options, which probably isn't what you want.
I can't seem to write to file "xxx," and I think I should be able to. Why?
It's complicated, particularly for Windows users- it depends upon the permission bits on the file and directory where you want to write, what Unix groups you are in, and, of course, who you are. Lab staff has written a web file attributes tool to let Windows users see the "permission bits" on a file or directory, and a Unix groups membership tool to let Windows users see what Unix groups they are in. Look in the mirror to see who you are.
I don't want my document to be cached. Can I control that?
This is a hard problem to which the answer is, more or less, "you can't." You can add hints to a page, but some browsers will ignore such hints no matter what. One trick is to enable SSI (server-side includes) for the page; documents that are processed for SSI directives are never sent with a "Last-modified" response header field, which encourages browsers to reload. Another hack is to send the content as CGI output; the output of CGI scripts is never supposed to be cached. Finally, and most orthodox, you can use META tags in the HEAD of your document:
<meta http-equiv="Cache-Control" content="no-cache">and/or
<meta http-equiv="Expires" content="0">which latter is reportedly ignored by some browsers and isn't strictly legal HTTP/1.1 in any event.