You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by Rich Bowen <rb...@rcbowen.com> on 2002/12/27 18:33:58 UTC

Re: [users@httpd] Content Negotiation with in Apache 2.0.43

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Thu, 26 Dec 2002, imacat wrote:

>     I believe I did not found anything related to this problem.  Maybe I
> have missed something somewhere.

Since people got sidetracked, and nobody actually addressed your
question ...

>     I cannot do content negotiation with <DirectoryMatch> in Apache
> 2.0.43.  My testing httpd.conf is:
>
> imacat@rinse ~ % cat /etc/apache/httpd2.conf-test
> User nobody
> Group nogroup
> DocumentRoot /var/tmp/htdocs
> PidFile /var/run/httpd2.pid
> Listen 50080
> ErrorLog /var/log/apache/error_log
> Options +MultiViews
> DirectoryIndex index.html
>
> AddLanguage en          .en
> AddLanguage zh-tw       .zh-tw
> AddLanguage zh-cn       .zh-cn
> LanguagePriority zh-tw zh-cn en
>
> <DirectoryMatch /var/tmp/htdocs>
> </DirectoryMatch>

I'm a little confused here. You have Multiviews on for the whole server.
The empty DirectoryMatch section does not do anything at all. It does
not add to, or detract from, the content-negotiation setting. I'm not
entirely clear, from your description, exactly what is happening.

> imacat@rinse ~ %
>
>     My document root is:
>
> imacat@rinse ~ % ls /var/tmp/htdocs -l
> total 12
> -rw-r--r--    1 imacat   root          517 Dec 25 23:34 index.html.en
> lrwxrwxrwx    1 imacat   root           13 Dec 25 23:36 index.html.html -> index.html.en

This symlink will be explicitly ignored, since you don't have Options
FollowSymLinks turned on, as far as I can tell.

> -rw-r--r--    1 imacat   root          504 Dec 25 23:35 index.html.zh-cn
> -rw-r--r--    1 imacat   root          500 Dec 25 23:35 index.html.zh-tw

>     After starting /usr/sbin/httpd2 -f /etc/apache/httpd2.conf-test, and
> try to connect, I get:
>
> imacat@rinse ~ % lynx -dump http://rinse:50080/
>                                   Index of /
>
>      * [1]index.html.en
>      * [2]index.html.html
>      * [3]index.html.zh-cn
>      * [4]index.html.zh-tw

What Accept headers is lynx sending? What do the associated entries in
the access log look like?

>     This is strange.  It should display index.html.html.  And if I

No, it should not, because that file is a symlink. Add

Options +FollowSymlinks

and see what happens.

> comment out <DirectoryMatch>:
>
> imacat@rinse ~ % cat /etc/apache/httpd2.conf-test
> User nobody
> Group nogroup
> DocumentRoot /var/tmp/htdocs
> PidFile /var/run/httpd2.pid
> Listen 50080
> ErrorLog /var/log/apache/error_log
> Options +MultiViews
> DirectoryIndex index.html
>
> AddLanguage en          .en
> AddLanguage zh-tw       .zh-tw
> AddLanguage zh-cn       .zh-cn
> LanguagePriority zh-tw zh-cn en
>
> #<DirectoryMatch /var/tmp/htdocs>
> #</DirectoryMatch>
> imacat@rinse ~ %
>
>     And try again, I'll get:
>
> imacat@rinse ~ % lynx -dump http://rinse:50080/
>                                    Test Page
>
>    This is a test page.
> imacat@rinse ~ %
>
>     which is the correct answer.

OK, this makes no sense to me at all. An empty <DirectoryMatch> section
should not have any effect on the results at all. I probably need to
experiment with this some on my own server.

>     This had never happened before in Apache 1.3.x (at least in my
> experience).  I'm using content negotiation throughout my website, along
> with several <DirectoryMatch>.  I cannot switch to Apache 2 now for this
> reason.  This does not happen on <Directory> or <LocationMatch>.  It
> only seems to be a problem of <DirectoryMatch>
>
>     I don't know if anyone has noticed this, or if I have missed
> something in the Apache 2 documentation.  I have tried some search on
> the mailing list archives, but found nothing.  Can anyone give me a hint
> on this?  Or is it really a bug?

It is certainly not desired behavior. Try my suggestions, and I'll do
some experimentation on this end, now that I have some free time
available. I'll get back to you on this.

- -- 
Rich Bowen - rbowen@rcbowen.com
ReefKnot - http://www.reefknot.org
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)
Comment: Made with pgp4pine 1.75-6

iD8DBQE+DI8NXP03+sx4yJMRAkOSAKCWTHUh1l8w5WOCk1RpR/Hi7Lje2QCgqeiv
I+sRLhbJdhh/k203TIszOMI=
=TuXi
-----END PGP SIGNATURE-----



---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org


Re: [users@httpd] Content Negotiation with in Apache 2.0.43

Posted by imacat <im...@mail.imacat.idv.tw>.
On Fri, 27 Dec 2002 12:33:58 -0500 (EST)
Rich Bowen <rb...@rcbowen.com> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> On Thu, 26 Dec 2002, imacat wrote:
> > imacat@rinse ~ % ls /var/tmp/htdocs -l
> > total 12
> > -rw-r--r--    1 imacat   root          517 Dec 25 23:34 index.html.en
> > lrwxrwxrwx    1 imacat   root           13 Dec 25 23:36 index.html.html -> 
> index.html.en
> 
> This symlink will be explicitly ignored, since you don't have Options
> FollowSymLinks turned on, as far as I can tell.

    Yes, you are right.  And it does not do anything at all here.  Lynx
does send a Accept-Language header.  There's no need to be a default
document.  It should be removed.

> What Accept headers is lynx sending? What do the associated entries in
> the access log look like?

imacat@rinse ~ % cat /usr/local/apache/htdocs/imacat/cgi-bin/dumphead.cgi
#! /bin/sh
echo "Content-Type: text/plain; charset=US-ASCII"
echo
set | grep ^HTTP_
imacat@rinse ~ % lynx -dump http://imacat/cgi-bin/dumphead.cgi
HTTP_ACCEPT='text/html, text/plain, text/sgml, */*;q=0.01'
HTTP_ACCEPT_CHARSET='big5, iso-8859-1;q=0.01, us-ascii;q=0.01'
HTTP_ACCEPT_ENCODING='gzip, compress'
HTTP_ACCEPT_LANGUAGE=en
HTTP_HOST=imacat
HTTP_USER_AGENT='Lynx/2.8.4rel.1 libwww-FM/2.14 SSL-MM/1.4.1 OpenSSL/0.9.6g'

imacat@rinse ~ % 

    I believe its "en" here.  The Accept-Charset has no effect here,
since there's no AddCharset in the configuration file.

> No, it should not, because that file is a symlink. Add
> Options +FollowSymlinks
> and see what happens.

    Yes, you are right. ^^;  I made a mistake at this point.  It's not
used anyway.

> > comment out <DirectoryMatch>:
> >
> >     And try again, I'll get:
> >
> > imacat@rinse ~ % lynx -dump http://rinse:50080/
> >                                    Test Page
> >
> >    This is a test page.
> > imacat@rinse ~ %
> 
> OK, this makes no sense to me at all. An empty <DirectoryMatch> section
> should not have any effect on the results at all. I probably need to
> experiment with this some on my own server.

    Well, that's the whole point. ^_*'  My original configuration file
is far more complicated.  It's:

imacat@rinse ~ % wc -l /etc/apache/httpd.conf
    890 /etc/apache/httpd.conf
imacat@rinse ~ % cat /etc/apache/httpd.conf
...
<DirectoryMatch /usr/local/apache/htdocs/(wov|imacat|emandy|emily|htc)>
        ErrorDocument 400 /errors/400.html
        ErrorDocument 401 /errors/401.html
        ErrorDocument 403 /errors/403.html
        ErrorDocument 404 /errors/404.html
</DirectoryMatch>
...
imacat@rinse ~ % 

    I certainly will not put the whole 890 lines here.  It makes no
sense to debug such a large file on this list.  I simplified the problem
as much as possible.  What I posted here (httpd2.conf-test) is the
simplest abstract that can work and demostrate this problem.

    I had suspected if the problem comes from ErrorDocument, but then I
was wrong.  An empty <DirectoryMatch> disables the content negotiation
of the directory index file, too.

    Of course, I can work around my own problem by having multiple
<Directory>s instead of a single <DirectoryMatch>.  But that makes my
configuration file more complicated.  Besides, I still consider this as
a problem that should be solved.  I wish to make clear what happens here.

> It is certainly not desired behavior. Try my suggestions, and I'll do
> some experimentation on this end, now that I have some free time
> available. I'll get back to you on this.

    Thank you. ^_*'

    By the way, type maps work here.  (Thanks to Irmund Thum. ^_*')   I
shall consider using it, since it is much faster, according to the
description.  But it is painful to add type maps, as I'm using content
negotiation throughout my websites.  Also, as I said above, I still
consider this as a problem that should be solved.  It does not work as
expected, according to the current documentation.  If this is indeed a
bug, there should be some fix on this.

--
Best regards,
imacat ^_*'
imacat@mail.imacat.idv.tw
PGP Key: http://www.imacat.idv.tw/me/pgpkey.txt

<<Woman's Voice>> News: http://www.wov.idv.tw/
Tavern IMACAT's: http://www.imacat.idv.tw/
TLUG List Manager: http://www.linux.org.tw/mailman/listinfo/tlug