|
Server : Apache System : Linux s1230 5.15.0-139-generic #149~20.04.1 SMP Tue Jul 14 11:21:49 UTC 2026 x86_64 User : p141464 ( 418825) PHP Version : 7.4.33.12 Disable Function : NONE Directory : /home/www/p141464/html/KMU-CSR-PLANER/wp-content/plugins/matomo/classes/WpMatomo/ |
Upload File : |
<?php
/**
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
* @package matomo
*/
namespace WpMatomo;
if ( ! defined( 'ABSPATH' ) ) {
exit; // if accessed directly
}
class Compatibility extends Feature {
public function register_hooks() {
$this->ithemes_security();
}
/**
* refs https://github.com/matomo-org/matomo-for-wordpress/issues/131
* When user disables feature "Disable PHP in plugins" in system tweaks
* then the Matomo backend doesn't work
*/
private function ithemes_security() {
if ( defined( 'MATOMO_COMPATIBIILITY_ITHEMES_SECURITY_DISABLE' ) && MATOMO_COMPATIBIILITY_ITHEMES_SECURITY_DISABLE ) {
return;
}
add_filter(
'itsec_filter_apache_server_config_modification',
function ( $rules ) {
// otherwise the path below won't be compatible
// todo ideally we would make the plugins path relative and match the specific path...
// like preg_quote(relative_wp_content_dir)...
$is_wp_content_dir_compatible = defined( 'WP_CONTENT_DIR' )
&& ABSPATH . 'wp-content' === rtrim( WP_CONTENT_DIR, '/' );
if ( $rules
&& $is_wp_content_dir_compatible
&& is_string( $rules )
&& strpos( $rules, 'RewriteEngine On' ) > 0
&& strpos( $rules, 'content' ) > 0
&& strpos( $rules, 'plugins' ) > 0 ) {
$rules = '
<IfModule mod_rewrite.c>
RewriteEngine On
# Allow Matomo Backend
RewriteRule ^wp\-content/plugins/matomo/app/(index|piwik|matomo)\.php$ \$0 [NC,L]
</IfModule>
' . $rules;
}
return $rules;
},
9999999991,
$accepted_args = 1
);
}
}