Looking for a fix, I pass through the REQUEST_FILENAME modification, but now you point… seams obvious that must be related.
The easy fix you suggest in bugstrack (use “%{DOCUMENT_ROOT}%{REQUEST_FILENAME}” instead of “%{REQUEST_FILENAME}”) don’t work for me… hopefully not related with my symlinked environment.
When I try your fix, I got too much nested redirections, due “!-f” condition is not evaluated properly… But thanks a lot for your comment. I’m confident now I’m in the right way.
I will do some testing with a not used domainname and “LogLevel Debug” to see what happens…
Confirm that your DocumentRoot has the trailing /, or add the slash separator between DOCUMENT_ROOT and REQUEST_FILENAME. That difference bit me a few times.
DocumentRoot includes the trailing slash, and i tested adding and an slash between both apache variables and it still fails.
Two questions raise to me:
a) Why it happens with /index, but not with /login or /manager?
I mean, my mod_rewrite rules work differently with “/index”… and got stuck in /htdocs folder instead of going to /htdocs/ojs-journalTag one. b) Any suggestion about how to debug a big .htaccess in a production server?
My .htaccess, with rules for all my journals, is now close to 500 lines.
I made a test with an secondary domain and with an simple new .htaccess and seams that /index is working fine there… so I’m starting to think the problem is related with a former rule that catches the url and redirects to DocumentRoot instead of letting those rules do the right job:
Sounds like it is time to add a high value for your LogLevel. Rewrite rules behave a bit differently in .htaccess files than in the VirtualHost section; perhaps one of the rules is getting called via subrequest when you’re not expecting it to be called. http://httpd.apache.org/docs/trunk/rewrite/tech.html#InternalAPI
It took me a week, but I found it !!
Thanks you all for your help.
I recognize that I still don’t understand why it happens… (it worked and still works fine in my old server with my old apache) but if I remove the index.php in my web-root folder (/htdocs/index.php) my mod_rewite rules worked again. Looks like in the new serve “/index” is redirected to “index.php”.
I reviewed my apache config, and every htaccess I could find and I’m not able to recognize the responsible of the redirection.
The offending “index.php” basically include a set of rules to redirect properly, but same work could be done with mod_rewrite.