PluginProbe
LWS Tools / 2.6
LWS Tools v2.6
trunk 1.0 1.0.1 2.0 2.1 2.1.5 2.2 2.2.1 2.3 2.3.1 2.4 2.4.1 2.4.2 2.4.5 2.4.6 2.4.7 2.4.8 2.4.9 2.5 2.6 2.6.1 2.6.1.5 2.6.2 2.6.3 2.6.4
lws-tools / view / change_htaccess.php

change_htaccess.php in LWS Tools 2.6, at view/change_htaccess.php

132 lines 5.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 ###############################################
3 # htaccess
4 #
5 # Codes d'erreurs 7XX
6 // Liste des options
7 $opts = [
8 'autoindex' => false,
9 'authorid' => false,
10 'comments' => false,
11 'sqlfiles' => false,
12 'readmelicense' => false,
13 'xmlrpc' => false,
14 'phpuploads' => false,
15 'sslredirect' => false,
16 ];
17
18 if (is_file(ABSPATH . '.htaccess')) {
19 // Options hors balise
20 $f = file(ABSPATH . '.htaccess');
21 $file = file_get_contents(ABSPATH . '.htaccess');
22 $read = false;
23 $balise = false;
24 $rCond = false;
25 $datas = [];
26
27 foreach ($f as $line) {
28 if ($read && preg_match("#^<(.[^>]+)>$#", trim($line), $a)) {
29 $balise = $a[1];
30 }
31
32 if ($read && preg_match("#^</.[^>]+>$#", trim($line))) {
33 $balise = false;
34 }
35
36 if ($read && preg_match("#^(RewriteCond .+)#", trim($line), $a)) {
37 $rCond = $a[1];
38 }
39
40 if (trim($line) == '# BEGIN WP MANAGER') {
41 $read = true;
42 }
43
44 if ($read && trim($line) != '' && trim($line)[0] != '#') {
45 if (! $balise && ! $rCond) {
46 // Auto index
47 if (trim(mb_strtolower($line)) == 'options +indexes') {
48 $opts['autoindex'] = true;
49 }
50
51 // Blocage de la page permettant de recuperer les infos sur l'auteur
52 if (trim(mb_strtolower($line)) == 'rewriterule ^author/(.+) "-" [f]') {
53 $opts['authorid'] = true;
54 }
55
56 // Blocage fichiers .sql
57 if (trim(mb_strtolower($line)) == 'rewriterule (.+)\.sql$ "-" [f]') {
58 $opts['sqlfiles'] = true;
59 }
60
61 // Blocage fichiers readme et licence
62 if (trim(mb_strtolower($line)) == 'rewriterule (license\.txt|readme\.html)$ "-" [f]') {
63 $opts['readmelicense'] = true;
64 }
65
66 // Blocage fichier xmlrpc
67 if (trim(mb_strtolower($line)) == 'rewriterule xmlrpc\.php$ "-" [f]') {
68 $opts['xmlrpc'] = true;
69 }
70 } elseif (trim(mb_strtolower($balise)) == 'if "%{request_uri} =~ m#wp-content/uploads/.+\.php#"') {
71 if (trim(mb_strtolower($line)) == 'sethandler !') {
72 $opts['phpuploads'] = true;
73 }
74 } elseif (trim(mb_strtolower($balise)) == 'if "%{request_filename} =~ /wp-comments-post.php/ && ( %{http_user_agent} == \'\' || %{http_referer} == \'\' )"') {
75 if (trim(mb_strtolower($line)) == 'rewriterule wp-comments-post\.php$ "-" [f]') {
76 $opts['comments'] = true;
77 }
78 } elseif (trim(mb_strtolower($rCond)) == 'rewritecond %{https} !on') {
79 if (trim(mb_strtolower($line)) == 'rewriterule ^(.*)$ https://%{http_host}%{request_uri} [redirect=301,l]') {
80 $rCond = false;
81 $opts['sslredirect'] = true;
82 }
83 }
84 }
85
86 if (trim($line) == '# END WP MANAGER') {
87 $read = false;
88 }
89 }
90
91 // $hta = '';
92 // foreach ($opts as $opt => $value) {
93 // if ($value) {
94 // switch ($opt) {
95 // case 'autoindex':
96 // $hta .= "Options +Indexes\n";
97 // break;
98
99 // case 'authorid':
100 // $hta .= "RewriteRule ^author/(.+) \"-\" [F]\n";
101 // break;
102
103 // case 'comments':
104 // $hta .= "<If \"%{REQUEST_FILENAME} =~ /wp-comments-post.php/ && ( %{HTTP_USER_AGENT} == '' || %{HTTP_REFERER} == '' )\">\n RewriteRule wp-comments-post\\.php$ \"-\" [F]\n</If>\n";
105 // break;
106
107 // case 'sqlfiles':
108 // $hta .= "RewriteRule (.+)\\.sql$ \"-\" [F]\n";
109 // break;
110
111 // case 'readmelicense':
112 // $hta .= "RewriteRule (license\\.txt|readme\\.html)$ \"-\" [F]\n";
113 // break;
114
115 // case 'xmlrpc':
116 // $hta .= "RewriteRule xmlrpc\\.php$ \"-\" [F]\n";
117 // break;
118
119 // case 'phpuploads':
120 // $hta .= "<If \"%{REQUEST_URI} =~ m#wp-content/uploads/.+\\.php#\">\n SetHandler !\n</If>\n";
121 // break;
122
123 // case 'sslredirect':
124 // $hta .= "RewriteCond %{HTTP:X-Forwarded-Proto} !https\nRewriteCond %{HTTPS} !on\nRewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [redirect=301,L]\n";
125 // break;
126 // }
127 // }
128 // }
129 // preg_replace("/# BEGIN WP MANAGER([\S\s]*?)# END WP MANAGER/", $hta, $file);
130 // file_put_contents(ABSPATH . '.htaccess', $file);
131 }
132