Thomas Szteliga
Forum Replies Created
-
Hello,
Apache & mod_rewrite is configured as it should be and mod_rewrite is working without problems on this vhost.
The issue is WordPress is thinking, there’s no mod_rewrite available.
WordPress is thinking this way, because it’s running under php-fpm and is using got_url_rewrite() to check, if rewrite is available.
If you check got_url_rewrite() you’ll see:
function got_url_rewrite() { $got_url_rewrite = ( got_mod_rewrite() || $GLOBALS['is_nginx'] || iis7_supports_permalinks() );
and when you check got_mod_rewrite() | Function | WordPress Developer Resources, you’ll see:
function got_mod_rewrite() { $got_rewrite = apache_mod_loaded( 'mod_rewrite', true );
and then, when you check apache_mod_loaded() | Function | WordPress Developer Resources you’ll see :
function apache_mod_loaded( $mod, $default_value = false ) { global $is_apache; if ( ! $is_apache ) { return false; } $loaded_mods = array(); if ( function_exists( 'apache_get_modules' ) ) { $loaded_mods = apache_get_modules(); if ( in_array( $mod, $loaded_mods, true ) ) { return true; } } if ( empty( $loaded_mods ) && function_exists( 'phpinfo' ) && ! str_contains( ini_get( 'disable_functions' ), 'phpinfo' ) ) { ob_start(); phpinfo( INFO_MODULES ); $phpinfo = ob_get_clean(); if ( str_contains( $phpinfo, $mod ) ) { return true; } } return $default_value; }
If this function returns false, WordPress will not detect mod_rewrite and index.php will be added to permalinks.
The global $is_apache
$is_apache = strstr($_SERVER['SERVER_SOFTWARE'], 'Apache')
will be false, because $_SERVER[‘SERVER_SOFTWARE’] will contain string(1) ” ” in PHP-FPM, so the result will be false, and finally got_url_rewrite() will return false, so WordPress will behave as if there is no mod_rewrite available, even if it is, just “one lever higher”.
So in general my question is — is there a known quick solution, or should I simply rewrite the got_url_filter like this:
add_filter('got_url_rewrite', 'enable_url_rewrite'); function enable_url_rewrite($got_url_rewrite) { return true; }
to force url rewriting in this case?
- This reply was modified 1 year ago by Thomas Szteliga.
Forum: Plugins
In reply to: [W3 Total Cache] How to create replaceable url’s for CDN purpousesYes, OVH CDN.
Forum: Plugins
In reply to: [Plugin: Category Order] Works with 2.8.4Works great.