The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.


Plack::Middleware::IIS6ScriptNameFix - fixes wrong SCRIPT_NAME and PATH_INFO that IIS6 sets


  # in your app.psgi
  use Plack::Builder;

  builder {
    enable "IIS6ScriptNameFix";

  # Or from the command line
  plackup -s FCGI -e 'enable "IIS6ScriptNameFix"' /path/to/app.psgi


This middleware fixes wrong SCRIPT_NAME and PATH_INFO set by IIS6.



By default, this middleware checks if SERVER_SOFTWARE PSGI environment matches what Microsoft IIS server 6-9 would set for FastCGI. By setting force to true (1), this middleware always applies the fix, regardless of the SERVER_SOFTWARE string.

Use this option if the environment is broken similar to IIS, or if the IIS is updated and the regular expression in this module doesn't match any more e.g. you're running IIS 10.


Florian Ragwitz