summaryrefslogtreecommitdiff
path: root/doc/bugs/po:_apache_config_serves_index.rss_for_index.mdwn
diff options
context:
space:
mode:
authorintrigeri <intrigeri@boum.org>2010-12-20 14:27:21 +0100
committerintrigeri <intrigeri@boum.org>2010-12-20 14:27:21 +0100
commit75196e76b627709a6ecae3fa948e1fba7928a5ce (patch)
tree6aa2baeb9cc68f98ca256ce0ff5cb20909f52ef9 /doc/bugs/po:_apache_config_serves_index.rss_for_index.mdwn
parent8c2962ec48ae57605d6d0e297be437a97b6229ca (diff)
parente5ed3c9e3801360cc00ce4f4f325f68ac0770bff (diff)
Merge remote branch 'upstream/master' into prv/po
Diffstat (limited to 'doc/bugs/po:_apache_config_serves_index.rss_for_index.mdwn')
-rw-r--r--doc/bugs/po:_apache_config_serves_index.rss_for_index.mdwn36
1 files changed, 36 insertions, 0 deletions
diff --git a/doc/bugs/po:_apache_config_serves_index.rss_for_index.mdwn b/doc/bugs/po:_apache_config_serves_index.rss_for_index.mdwn
new file mode 100644
index 000000000..a2b68c4b1
--- /dev/null
+++ b/doc/bugs/po:_apache_config_serves_index.rss_for_index.mdwn
@@ -0,0 +1,36 @@
+The apache config documented in [[plugins/po]] has a subtle bug. It works
+until a site gets an index.atom or index.rss file. (Acutally, with po
+enabled, they're called index.en.atom or index.en.rss etc, but the result
+is the same).
+
+Then, when wget, curl, or w3m is pointed at http://site/, apache serves
+up the rss/atom file rather than the index page.
+
+Analysis:
+
+* /etc/mime.types gives mime types to .rss and .atom files
+* `mod_negotiation`'s MultiViews allows any file with a mime type to be
+ served up via content negotiation, if the client requests that type.
+* wget etc send `Accept: */*` to accept all content types. Compare
+ with firefox, which sends `Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*`
+* So apache has a tie between a html encoded Enlish file, and a rss encoded
+ English file and the client has no preference. In a tie, apache will serve up the
+ *smallest* file, which tends to be the rss file. (Apache's docs say it uses that
+ strange criteria to break ties; see <http://httpd.apache.org/docs/2.0/mod/mod_mime.html#multiviewsmatch>)
+
+The only way I have found to work around this problem is to remove
+atom and rss from /etc/mime.types. Of course, that has other undesirable
+results.
+
+I wonder if it would be worth making the po plugin generate apache
+[type map files](http://httpd.apache.org/docs/2.0/mod/mod_negotiation.html#typemaps).
+That should avoid this problem.
+--[[Joey]]
+
+Update: A non-intrusive fix is to add this to apache configuration.
+This tunes the "quality" of the rss and atom files, in an apparently currently
+undocumented way (though someone on #httpd suggested it should get documented).
+Result is that apache will prefer serving index.html. --[[Joey]] [[done]]
+
+ AddType application/rss+xml;qs=0.8 .rss
+ AddType application/atom+xml;qs=0.8 .atom