<?php defined( 'ABSPATH' ) or die( 'you do not have access to this page!' ); if ( ! class_exists( 'rsssl_server' ) ) { class rsssl_server { private static $_this; private $sapi = false; public function __construct() { if ( isset( self::$_this ) ) { wp_die( 'you cannot create a second instance.' ); } self::$_this = $this; } public static function this() { return self::$_this; } /** * @Since 2.5.1 * Checks if the server uses .htaccess * @return bool */ public function uses_htaccess() { // No .htaccess on WP Engine if ( function_exists( 'is_wpe' ) && is_wpe() ) { return false; } if ( $this->get_server() === 'apache' || $this->get_server() === 'litespeed' ) { return true; } return false; } /** * Returns the server type of the plugin user. * * @return string|bool server type the user is using of false if undetectable. */ public function get_server() { //Allows to override server authentication for testing or other reasons. if ( defined( 'RSSSL_SERVER_OVERRIDE' ) ) { return RSSSL_SERVER_OVERRIDE; } $server_raw = strtolower( htmlspecialchars( $_SERVER['SERVER_SOFTWARE'] ) ); if ( strpos( $server_raw, 'apache' ) !== false ) { return 'apache'; } elseif ( strpos( $server_raw, 'nginx' ) !== false ) { return 'nginx'; } elseif ( strpos( $server_raw, 'litespeed' ) !== false ) { return 'litespeed'; } elseif ( strpos( $server_raw, 'openresty' ) !== false ) { return 'openresty'; } elseif ( strpos( $server_raw, 'microsoft-iis' ) !== false ) { return 'microsoft-iis'; } else { //unsupported server return false; } } /** * Get the Auto prepend configuration * * @return string */ public function auto_prepend_config(): string { $return = ''; if ( $this->isApacheModPHP() ){ $return = "apache-mod_php"; //Apache _ modphp } else if ( $this->isApacheSuPHP() ) { $return = "apache-suphp"; //Apache + SuPHP } else if ( $this->isApache() && !$this->isApacheSuPHP() && ($this->isCGI() || $this->isFastCGI()) ) { $return = "cgi"; //Apache + CGI/FastCGI } else if ($this->isLiteSpeed()){ $return = "litespeed"; } else if ( $this->isNGINX() ) { $return = "nginx"; } else if ( $this->isIIS() ) { $return = "iis"; } else { $return = "apache-mod_php"; } update_option('rsssl_auto_prepend_config', $return, true); return $return; } /** * If Apache * @return bool */ public function isApache():bool { return $this->get_server() === 'apache'; } /** * If NGINX * @return bool */ public function isNGINX():bool { return $this->get_server() === 'nginx'; } /** * If Litespeed * @return bool */ public function isLiteSpeed():bool { return $this->get_server() === 'litespeed'; } /** * If IIS * @return bool */ public function isIIS():bool { return $this->get_server() === 'iis'; } /** * If ModPHP * @return bool */ public function isApacheModPHP():bool { return $this->isApache() && function_exists('apache_get_modules'); } /** * If SupPHP * Not sure if this can be implemented at the PHP level. * @return bool */ public function isApacheSuPHP():bool { return $this->isApache() && $this->isCGI() && function_exists('posix_getuid') && getmyuid() === posix_getuid(); } /** * If CGI * @return bool */ public function isCGI():bool { return !$this->isFastCGI() && stripos($this->sapi(), 'cgi') !== false; } /** * If FastCGI * @return bool */ public function isFastCGI():bool { return stripos($this->sapi(), 'fastcgi') !== false || stripos($this->sapi(), 'fpm-fcgi') !== false; } /** * If Sapi * @return bool|string */ private function sapi(){ if ( !$this->sapi ) { $this->sapi = function_exists('php_sapi_name') ? php_sapi_name() : 'false'; } if ( 'false' === $this->sapi ) { return false; } return $this->sapi; } /** * Check if the apache version is at least 2.4 * @return bool */ public function apache_version_min_24() { $version = $_SERVER['SERVER_SOFTWARE'] ?? false; //check if version is higher then 2.4. if ( preg_match( '/Apache\/(2\.[4-9])/', $version, $matches ) ) { return true; } return false; } } //class closure }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
assets | Folder | 0755 |
|
|
languages | Folder | 0755 |
|
|
lets-encrypt | Folder | 0755 |
|
|
lib | Folder | 0755 |
|
|
mailer | Folder | 0755 |
|
|
modal | Folder | 0755 |
|
|
onboarding | Folder | 0755 |
|
|
placeholders | Folder | 0755 |
|
|
progress | Folder | 0755 |
|
|
security | Folder | 0755 |
|
|
settings | Folder | 0755 |
|
|
testssl | Folder | 0755 |
|
|
upgrade | Folder | 0755 |
|
|
class-admin.php | File | 97.78 KB | 0644 |
|
class-cache.php | File | 3.22 KB | 0644 |
|
class-certificate.php | File | 7.39 KB | 0644 |
|
class-front-end.php | File | 2.04 KB | 0644 |
|
class-installer.php | File | 4.4 KB | 0644 |
|
class-mixed-content-fixer.php | File | 5.55 KB | 0644 |
|
class-multisite.php | File | 20.87 KB | 0644 |
|
class-server.php | File | 4.4 KB | 0644 |
|
class-site-health.php | File | 11.57 KB | 0644 |
|
class-wp-cli.php | File | 1.83 KB | 0644 |
|
compatibility.php | File | 2.14 KB | 0644 |
|
force-deactivate.txt | File | 3.78 KB | 0644 |
|
functions.php | File | 9.08 KB | 0644 |
|
index.php | File | 35 B | 0644 |
|
readme.txt | File | 27.65 KB | 0644 |
|
rlrsssl-really-simple-ssl.php | File | 9.09 KB | 0644 |
|
rsssl-auto-loader.php | File | 1.88 KB | 0644 |
|
security.md | File | 686 B | 0644 |
|
ssl-test-page.php | File | 1.9 KB | 0644 |
|
system-status.php | File | 17.13 KB | 0644 |
|
uninstall.php | File | 5.87 KB | 0644 |
|
upgrade.php | File | 9.57 KB | 0644 |
|