I am happy because I solved a problem with one of my WP plugins, which I could not get working (now-reading). The problem was not especially related to this plugin, but it took me hours to understand the cause.
When trying to directly load a .php file in the plugin directory, it would redirect me to index.php and WP would show the 404 error page. No problem for .php files included by others.
When trying to save the options of “Now Reading”, the form would be sent to the following file:
but instead of loading this file, it would load index.php and display a 404 error.
Same thing when trying to add a book, for the following file:
So what was happening?
I tried to look at my rewrite rules, suspecting a problem with WP rewrite rules, in vain.
It appears that the solution is much simpler: my web host apache server settings are such that you cannot directly load a .php script which has write permission for group members. Same restriction for scripts located in a directory that has write permission for group members.
By comparing the now-reading directory (and subdirectories) with my other plugins’, I found that the permission was 775 instead of 755. And the file permissions were 664 instead of 644.
I changed my directory permissions to 755 and file permissions to 644, and… it worked!