Reputation: 811
I am getting an internal server error on my website. I have checked the Apache error log and found the following errors:-
[Mon Feb 22 14:34:36.065540 2016] [core:error] [pid 660170] [client xxx.xxx.xxx.xxx:59213] AH00124: Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
Here I am pasting my .htaccess file:-
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(import.php) $1?%{QUERY_STRING} [L]
RewriteRule ^(phpinfo.php) $1 [L]
RewriteRule ^(robots.txt) $1 [L]
RewriteRule ^(index.html) $1 [L]
RewriteRule ^ajax/(.*) ajax/$1 [L]
RewriteRule ^css/(.*) css/$1 [L]
RewriteRule ^data/(.*) data/$1 [L]
RewriteRule ^kmz/(.*) kmz/$1 [L]
RewriteRule ^js/(.*) js/$1 [L]
RewriteRule ^dlib/(.*) dlib/$1 [L]
RewriteRule ^java/(.*) java/$1 [L]
RewriteRule ^flash/(.*) flash/$1 [L]
RewriteRule ^export/(.*) export/$1 [L]
RewriteRule ^images/(.*) images/$1 [L]
RewriteRule ^editor.php(.*) editor.php$1 [L]
RewriteRule ^config.php(.*) config.php$1 [L]
RewriteRule ^admin.php(.*) admin.php$1 [L]
RewriteRule ^ajax.php(.*) ajax.php$1 [L]
RewriteRule ^index.php(.*) index.php$1 [L]
RewriteRule ^info.php util.php?um=info&%{QUERY_STRING} [L]
RewriteRule ^util.php(.*) util.php$1 [L]
RewriteRule ^ux/([^/]*)/([^/^=]*)/(.*) util.php?um=$1&mode=$2&$3 [L]
RewriteRule ^ux/([^/]*)/(.*) util.php?um=$1&$2 [L]
RewriteRule ^ux/(.*) util.php?um=$1 [L]
RewriteRule ^([^/]*)/([^/]*).html index.php?md=$1&ref=$2&%{QUERY_STRING} [L]
RewriteRule ^([^/]*).html index.php?md=page&ref=$1&%{QUERY_STRING} [L]
RewriteRule ^([^/]*)/$ index.php?md=page&ref=$1&%{QUERY_STRING} [L]
RewriteRule ^rss/events util.php?um=rss&ref=Events&_m=EVNT [L]
RewriteRule ^u/([^/]*) index.php?md=url&ref=$1 [L]
The problem started when I upgraded my PHP from 5.4 to 5.5. Can somebody help me on this.
Upvotes: 1
Views: 2552
Reputation: 785256
RewriteCond
is only applicable to very next RewriteRule
and not for all the RewriteRule
in your .htaccess. That said you have many do-nothing rules that should also be removed. Also rather than %{QUERY_STRING}
you can use QSA
flag.
Try this in your site root .htaccess:
RewriteEngine on
# skip all files and directories from rewrite rules below
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]
RewriteRule ^info\.php$ util.php?um=info [L,QSA]
RewriteRule ^ux/([^/]*)/([^/]*)/(.*)$ util.php?um=$1&mode=$2&$3 [L,QSA]
RewriteRule ^ux/([^/]+)/(.*)$ util.php?um=$1&$2 [L,QSA]
RewriteRule ^ux/(.*)$ util.php?um=$1 [L,QSA]
RewriteRule ^([^/]+)/([^/.]+)\.html$ index.php?md=$1&ref=$2 [L,QSA]
RewriteRule ^(.+)\.html$ index.php?md=page&ref=$1 [L,QSA]
RewriteRule ^([^/]+)/?$ index.php?md=page&ref=$1 [L,QSA]
RewriteRule ^rss/events util.php?um=rss&ref=Events&_m=EVNT [L,QSA]
RewriteRule ^u/([^/]+)/?$ index.php?md=url&ref=$1 [L,QSA]
Upvotes: 1