diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2005-06-18 05:17:18 +0000 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2005-06-18 05:17:18 +0000 |
commit | 92473b8f961218284340f4d045ba8fe3cbd694b1 (patch) | |
tree | f77a3400cecb5e5b3bbdce6bff8b4c1c18cdbb7e /actionpack/lib/action_controller | |
parent | 959707bfb62108fe9924ed4fefd6f3458972493a (diff) | |
download | rails-92473b8f961218284340f4d045ba8fe3cbd694b1.tar.gz rails-92473b8f961218284340f4d045ba8fe3cbd694b1.tar.bz2 rails-92473b8f961218284340f4d045ba8fe3cbd694b1.zip |
Fixed relative urls support for lighttpd #1048 [Nicholas Seckar/maznawak@nerim.net]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1450 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'actionpack/lib/action_controller')
-rwxr-xr-x | actionpack/lib/action_controller/request.rb | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/actionpack/lib/action_controller/request.rb b/actionpack/lib/action_controller/request.rb index 2cb4377273..73247d510a 100755 --- a/actionpack/lib/action_controller/request.rb +++ b/actionpack/lib/action_controller/request.rb @@ -135,12 +135,17 @@ module ActionController # Returns the interpreted path to requested resource after all the installation directory of this application was taken into account def path path = (uri = request_uri) ? uri.split('?').first : '' - path[relative_url_root.length..-1] # cut off the part of the url which leads to the installation directory of this app + + # Cut off the path to the installation directory if given + if (root = relative_url_root) then path[root.length..-1] + else path + end end - # Returns the path minus the web server relative installation directory - def relative_url_root(force_reload = false) - @@relative_url_root ||= File.dirname(env["SCRIPT_NAME"].to_s).gsub(/(^\.$|^\/$)/, '') + # Returns the path minus the web server relative installation directory. + # This method returns nil unless the web server is apache. + def relative_url_root + @@relative_url_root ||= File.dirname(env["SCRIPT_NAME"].to_s).gsub(/(^\.$|^\/$)/, '') if server_software == 'apache' end def port @@ -165,6 +170,10 @@ module ActionController @path_parameters ||= {} end + def server_software + (env['SERVER_SOFTWARE'] && /^([a-zA-Z]+)/ =~ env['SERVER_SOFTWARE']) ? $1.downcase : nil + end + #-- # Must be implemented in the concrete request #++ |