aboutsummaryrefslogtreecommitdiffstats
path: root/railties
diff options
context:
space:
mode:
Diffstat (limited to 'railties')
-rw-r--r--railties/CHANGELOG2
-rwxr-xr-xrailties/configs/apache.conf38
2 files changed, 34 insertions, 6 deletions
diff --git a/railties/CHANGELOG b/railties/CHANGELOG
index e5fb9ade29..8746017245 100644
--- a/railties/CHANGELOG
+++ b/railties/CHANGELOG
@@ -1,5 +1,7 @@
*SVN*
+* Added rewrite rules to deal with caching to public/.htaccess
+
* Added the option to specify a controller name to "generate scaffold" and made the default controller name the plural form of the model.
* Added that rake clone_structure_to_test, db_structure_dump, and purge_test_database tasks now pick up the source database to use from
diff --git a/railties/configs/apache.conf b/railties/configs/apache.conf
index 592c7ef155..5548292f8d 100755
--- a/railties/configs/apache.conf
+++ b/railties/configs/apache.conf
@@ -12,22 +12,48 @@ RewriteBase /dispatch.cgi
# Enable this rewrite rule to point to the controller/action that should serve root.
# RewriteRule ^$ /controller/action [R]
+# <caching>
+# no query string?
+RewriteCond %{QUERY_STRING} ^$
+
+# no POST method?
+RewriteCond %{REQUEST_METHOD} !^POST$ [NC]
+
+# Request filename is a directory?
+RewriteCond %{REQUEST_FILENAME} -d
+
+# Request filename + '/index' is a file?
+RewriteCond %{REQUEST_FILENAME}/index -f
+
+# Rewrite to request filename + '/index' and finish
+RewriteRule ^(.*)/?$ $1/index [QSA,L]
+
+# no query string?
+RewriteCond %{QUERY_STRING} ^$
+
+# no POST method?
+RewriteCond %{REQUEST_METHOD} !^POST$ [NC]
+
+# Request filename is a file?
+RewriteCond %{REQUEST_FILENAME} -f
+
+# Finish rewriting
+RewriteRule .* - [L]
+
+# Set default type of cached files to text/html
+DefaultType text/html
+# </caching>
+
# Add missing slash
RewriteRule ^([-_a-zA-Z0-9]+)$ /$1/ [R]
# Default rewriting rules.
-RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([-_a-zA-Z0-9]+)/([-_a-zA-Z0-9]+)/([0-9]+)$ ?controller=$1&action=$2&id=$3 [QSA,L]
-RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([-_a-zA-Z0-9]+)/([-_a-zA-Z0-9]+)$ ?controller=$1&action=$2 [QSA,L]
-RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([-_a-zA-Z0-9]+)/$ ?controller=$1&action=index [QSA,L]
-RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([-_a-zA-Z0-9]+)/([-_a-zA-Z0-9]+)/([-_a-zA-Z0-9]+)/([0-9]+)$ ?module=$1&controller=$2&action=$3&id=$4 [QSA,L]
-RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([-_a-zA-Z0-9]+)/([-_a-zA-Z0-9]+)/([-_a-zA-Z0-9]+)$ ?module=$1&controller=$2&action=$3 [QSA,L]
-RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([-_a-zA-Z0-9]+)/([-_a-zA-Z0-9]+)/$ ?module=$1&controller=$2&action=index [QSA,L]
# You can also point these error messages to a controller/action