- From: Pierre-Antoine Champin <swlists-040405@champin.net>
- Date: Sun, 05 Jul 2009 20:39:56 +0100
- To: Hugh Glaser <hg@ecs.soton.ac.uk>
- CC: Harry Halpin <hhalpin@ibiblio.org>, "public-lod@w3.org" <public-lod@w3.org>
Nice one :) works fine for me (tested on http://liris.cnrs.fr/~pchampin/tmp/ns). An interesting thing, though, is that http://champin.net/tmp/ns/voc1 does *not* redirect with a 303 to voc1.html or voc1.rdf, but instead return a 200, but with a "Content-Location" header field containing the appropriate location (i.e. voc1.html or voc2.html). This is therefore not complying with the letter [HttpRange-14]. Note that I do believe that it is complying with the spirit of [HttpRange-14], though. I interpret Content-Location as a kind of shortcut-redirection, which spares the client and the server the burden of a 2nd query whenever the server is able to produce the queried content anyway. So it can be considered in a sense as an optimized 303 redirection. (I actually discussed that very matter a month ago with Harry Halpin at ESWC). So, is this actually a common practice in the LOD community? Does this look like a good practice (it does to me)? If so, should HttpRange-14 be amended to acknowledge that? pa [HttpRange-14] http://www.w3.org/2001/tag/doc/httpRange-14/2007-05-31/HttpRange-14 Le 05/07/2009 16:16, Hugh Glaser a écrit : > OK, I'll have a go :-) > Why did I think this would be fun to do on a sunny Sunday morning that has turned into afternoon? > Here are the instructions: > > > 1. Create a web-accessible directory, let's say foobar, with all your .rdf, .ttl, .ntriples and .html files in it. > 2. Copy lodpub.php and path.php into it. > 3. Access path.php from your web server. > 4. Follow the instruction to paste that text into .htaccess > 5. You can remove path.php if you like, it was only there to help you get the .htaccess right. > > That should be it. > The above text and files are at > http://www.rkbexplorer.com/blog/?p=11 > > Of course, I expect that you can tell me all sorts of problems/better ways, but I am hoping it works for many. > > Some explanation: > We use a different method, and I have tried to extract the essence, and keep the code very simple. > We trap all 404 (File not Found) in the directory, and then any requests coming in for non-existent files will generate a 303 with an extension added, depending on the Accept header. > Note that you probably need the leading "/" followed by the full path from the domain root, otherwise it will just print out the text "lodpub.php"; > (That is not what the apache specs seem to say, but it is what seems to happen). > If you get "Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.", then it means that web server is not finding your ErrorDocument . > Put the file path.php in the same directory and point your browser at it - this will tell you what the path should be. > > Note that the httpd.conf (in /etc/httpd/conf) may not let your override, if your admins have tied things down really tight. > Mine says: > AllowOverride All > > Finally, at the moment, note that I think that apache default does not put the correct MIME type on rdf files, but that is a separate issue, and it makes no difference that the 303 happened. > > Best > Hugh > > On 05/07/2009 01:52, "Pierre-Antoine Champin"<swlists-040405@champin.net> wrote: > >> Le 03/07/2009 15:14, Danny Ayers a écrit : >>> 2009/7/2 Bill Roberts<bill@swirrl.com>: >>>> I thought I'd give the .htaccess approach a try, to see what's involved in >>>> actually setting it up. I'm no expert on Apache, but I know the basics of >>>> how it works, I've got full access to a web server and I can read the online >>>> Apache documentation as well as the next person. >>> I've tried similar, even stuff using PURLs - incredibly difficult to >>> get right. (My downtime overrides all, so I'm not even sure if I got >>> it right in the end) >>> >>> I really think we need a (copy& paste) cheat sheet. >>> >>> Volunteers? >> (raising my hand) :)* >> >> Here is a quick python script that makes it easier (if not completely >> immediate). It may still requires a one-liner .htaccess, but one that (I >> think) is authorized by most webmasters. >> >> I guess a PHP version would not even require that .htaccess, but sorry, >> I'm not fluent in PHP ;) >> >> So, assuming you want to publish a vocabulary with an RDF and an HTML >> description at http://example.com/mydir/myvoc, you need to: >> >> 1. Make `myvoc` a directory at the place where your HTTP server will >> serve it at the desired URI. >> 2. Copy the script in this directory as 'index.cgi' (or 'index.wsgi' if >> your server as WSGI support). >> 3. In the same directory, put two files named 'index.html' and >> 'index.rdf' >> >> If it does not work now (it didn't for me),you have to tell your HTTP >> server that the directory index is index.wsgi. In apache, this is done >> by creating (if not present) a `.htaccess` file in the `myvoc` >> diractory, and adding the following line:: >> >> DirectoryIndex index.cgi >> >> (or `index.wsgi`, accordingly) >> >> There is more docs in the script itself. I think the more recipes >> (including for other httpds) we can provide with the script, the more >> useful it will be. So feel free to propose other ones. >> >> enjoy >> >> pa >>
Received on Sunday, 5 July 2009 19:40:40 UTC