PyroCMS 2.2.1 (CodeIgniter) login attempt not redirecting with mod_rewrite
I have a simple PyroCMS 2.2.1 site which uses the default home page and
login system on Apache (2.2.25, I think!). In my local environment (OS X
10.7/Apache 2.2.22), everything works as expected. We had some issues
getting mod_rewrite to work, but now the URLs are clean and it appears to
be working -- except that we can't log in with the form.
The issue appears to be with the login request. The login does not work
when the request is sent like:
http://www.ourdomain.com/users/login?email=admin&password=123456&btnLogin=Login
But! It does work when it includes index.php. Like so:
http://games.coe.uky.edu/index.php/users/login?email=admin&password=123456&btnLogin=Login
I was able to brute force it by adding index.php to the form action, but
I'm certain that should not be necessary. I did look over several
CodeIgniter and PyroCMS forum posts, but I did not find a solution.
More background: after enabling mod_rewrite in Apache, we adjusted the
system/cms/config/config.php to show:
$config['index_page'] = '';
Here is a copy of our .htaccess file:
# Multiple Environment config
# Set this to development, staging or production
SetEnv PYRO_ENV development
<IfModule mod_rewrite.c>
# Make sure directory listing is disabled
Options +FollowSymLinks -Indexes
# disable the Apache MultiViews directive if it is enabled on the
server. It plays havoc with URL rewriting
Options -MultiViews
RewriteEngine on
# Automatically determine and set the PYRO_ENV variable
#RewriteCond %{HTTP_HOST} ^local.domain.com$
#RewriteRule (.*) $1 [E=PYRO_ENV:development]
#RewriteCond %{HTTP_HOST} ^stage.domain.com$
#RewriteRule (.*) $1 [E=PYRO_ENV:staging]
#RewriteCond %{HTTP_HOST} ^domain.com$
#RewriteRule (.*) $1 [E=PYRO_ENV:production]
# NOTICE: If you get a 404 play with combinations of the following
commented out lines
#AllowOverride All
#RewriteBase /home/supers/htdocs
# Restrict your site to only one domain
# !important USE ONLY ONE OPTION
# Option 1: To rewrite "www.domain.com -> domain.com" uncomment the
following lines.
#RewriteCond %{HTTPS} !=on
#RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
#RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
# Option 2: To rewrite "domain.com -> www.domain.com" uncomment the
following lines.
#RewriteCond %{HTTPS} !=on
#RewriteCond %{HTTP_HOST} !^www\..+$ [NC]
#RewriteCond %{HTTP_HOST} (.+)$ [NC]
#RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]
# Keep people out of codeigniter directory and Git/Mercurial data
RedirectMatch 403
^/.*/(system/cms/cache|system/codeigniter|system/cms/config|system/cms/logs|\.git|\.hg).*$
# Send request via index.php (again, not if its a real file or folder)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
<IfModule mod_php5.c>
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
<IfModule !mod_php5.c>
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
</IfModule>
Thanks!
No comments:
Post a Comment