5

I have Apache 2.4 set up with PHP-FPM on a server. To pass from Apache to PHP-FPM I use the following:

ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9001/hosting_files/site.com/admin_secure/$1

"admin_secure" is the DocumentRoot in the vhost.

In that directory, I have a .htaccess file that contains the following:

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule    ^$    webroot/    [L]
    RewriteRule    (.*) webroot/$1    [L]
 </IfModule>

The site works, right up until I try to access something that should be in the webroot directory. For example, if I go to vendors/kcfinder/browse.php which is inside the webroot directory, I get a "File not found" error. If I go to webroot/vendors/kcfinder/browse.php, it works.

I've turned on rewrite and proxy logging, and it looks like the rewrite never takes place. It just sends whatever I type in the URL (if it's a PHP file).

Is there a way to write my ProxyPassMatch statement to take in rewrites like that?

1

Your problem is that the .htaccess file is never read. .htaccess is only read after apache has determined that it needs to look for the resource requested on its local filesystem. You are however telling apache to forward the request to another process...

You will need to add the rewrites to your main config.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.