Permalink
Browse files

Fix relative URL root matching problems

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5272 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
  • Loading branch information...
1 parent 2c3ca4c commit 02dc646d558bf4c3ff433287d6e392dd02da22a9 @jamis jamis committed Oct 9, 2006
Showing with 15 additions and 4 deletions.
  1. +2 −0 actionpack/CHANGELOG
  2. +3 −4 actionpack/lib/action_controller/request.rb
  3. +10 −0 actionpack/test/controller/request_test.rb
View
@@ -1,5 +1,7 @@
*SVN*
+* Fix relative URL root matching problems. [Mark Imbriaco]
+
* Fix filter skipping in controller subclasses. #5949, #6297, #6299 [Martin Emde]
* render_text may optionally append to the response body. render_javascript appends by default. This allows you to chain multiple render :update calls by setting @performed_render = false between them (awaiting a better public API). [Jeremy Kemper]
@@ -161,11 +161,10 @@ def path
path = (uri = request_uri) ? uri.split('?').first : ''
# Cut off the path to the installation directory if given
- root = relative_url_root
- path[0, root.length] = '' if root
- path || ''
+ path.sub!(%r/^#{relative_url_root}/, '')
+ path || ''
end
-
+
# Returns the path minus the web server relative installation directory.
# This can be set with the environment variable RAILS_RELATIVE_URL_ROOT.
# It can be automatically extracted for Apache setups. If the server is not
@@ -207,6 +207,16 @@ def test_request_uri
@request.env['SCRIPT_NAME'] = "/hieraki/dispatch.cgi"
assert_equal "/hieraki/", @request.request_uri
assert_equal "/", @request.path
+
+ @request.set_REQUEST_URI '/hieraki/dispatch.cgi'
+ @request.relative_url_root = '/hieraki'
+ assert_equal "/dispatch.cgi", @request.path
+ @request.relative_url_root = nil
+
+ @request.set_REQUEST_URI '/hieraki/dispatch.cgi'
+ @request.relative_url_root = '/foo'
+ assert_equal "/hieraki/dispatch.cgi", @request.path
+ @request.relative_url_root = nil
# This test ensures that Rails uses REQUEST_URI over PATH_INFO
@request.relative_url_root = nil

0 comments on commit 02dc646

Please sign in to comment.