Open Sencillo  2015.003
Long live the simplicity of PHP
 All Data Structures Namespaces Functions
htaccess.generator.htgen.php
1 <?php
12 class htgen
13 {
14  protected $gen;
21  public function cache($type,$days)
22  {
23  $generator = '
24 # Sencillo HTACCESS Cache
25 <IfModule mod_expires.c>
26  ExpiresActive on
27 ';
28  foreach($type as $key => $value)
29  {
30  $generator .= '
31  ExpiresByType '.$value.' "access plus '.$days.' days"
32 ';
33  }
34  $generator.='
35 </IfModule>
36 ';
37  $this->gen[0]=$generator;
38  return array(0=>$generator);
39  }
40 
48  public function rewrite($status='on',$base='/',$port=443)
49  {
50  $generator = '
51 # Sencillo HTACCESS modrewrite configuration
52 RewriteCond %{SERVER_PORT} ^'.$port.'$
53 RewriteRule ^(.*)$ http://'.$_SERVER['SERVER_NAME'].'/$1 [L,R=301]
54 
55 # Sencillo HTACCESS modrewrite URLs
56 RewriteEngine '.$status.'
57 RewriteBase '.$base.'
58 ';
59  $this->gen[1]=$generator;
60  return array(1=>$generator);
61  }
62 
69  public function prettyUrl($file='index.php',$get='p')
70  {
71  $generator = '
72 # Sencillo HTACCESS pretty URLs format
73 RewriteCond %{REQUEST_FILENAME} !-f
74 RewriteCond %{REQUEST_FILENAME} !-d
75 RewriteCond %{REQUEST_FILENAME} !-l
76 RewriteRule ^(.*)$ '.$file.'?'.$get.'=$1 [L,QSA]
77 ';
78  $this->gen[2]=$generator;
79  return array(2=>$generator);
80  }
81 
86  public function toWww()
87  {
88  $generator = '
89 # Sencillo HTACCESS opensencillo.com -> www.opensencillo.com
90 RewriteCond %{HTTP_HOST} !^'.$_SERVER['SERVER_NAME'].'$ [NC]
91 RewriteRule ^(.*)$ http://'.$_SERVER['SERVER_NAME'].'/$1 [L,R=301]
92 ';
93  $this->gen[3]=$generator;
94  return array(3=>$generator);
95  }
96 
101  public function preventView()
102  {
103  $generator = '
104 # Sencillo HTACCESS Prevent viewing of .htaccess file
105 <Files .htaccess>
106  order allow,deny
107  deny from all
108 </Files>
109 ';
110  $this->gen[4]=$generator;
111  return array(4=>$generator);
112  }
113 
118  public function preventDir()
119  {
120  $generator = '
121 # Sencillo HTACCESS Prevent directory listings
122 Options All -Indexes
123 ';
124  $this->gen[5]=$generator;
125  return array(5=>$generator);
126  }
127 
133  public function directory($dir='index.php')
134  {
135  $generator = '
136 # Sencillo HTACCESS Change default directory page
137 DirectoryIndex '.$dir.'
138 ';
139  $this->gen[6]=$generator;
140  return array(6=>$generator);
141  }
142 
148  public function errorPages($errpages)
149  {
150  $generator = array();
151  foreach($errpages as $key=>$val)
152  {
153  $generator[] ='# Sencillo HTACCESS Custom '.$key.' errors';
154  $generator[] ='ErrorDocument '.$key.' '.$val.'';
155  }
156  $generator = implode(PHP_EOL,$generator);
157  $this->gen[7]=$generator;
158  return array(7=>$generator);
159  }
160 
167  public function perm($banlist,$allowlist=null)
168  {
169  $generator = '
170 # Block users by IP
171 order allow,deny
172 ';
173  foreach($banlist as $key => $value)
174  {
175  $generator .= '
176  deny from '.$value.'
177 ';
178  }
179  foreach($allowlist as $key => $value)
180  {
181  $generator .= '
182  allow from '.$value.'
183 ';
184  }
185  $this->gen[8]=$generator;
186  return array(8=>$generator);
187  }
188 
193  public function prepare()
194  {
195  $this->gen=asort($this->gen);
196  foreach($this->gen as $key=>$val)
197  {
198  $generator.=$val;
199  }
200  return $generator;
201  }
202 
206  public function installerScheme()
207  {
208  self::cache(array('image/jpg','image/jpeg','image/gif','image/png'),30);
209  self::rewrite();
210  self::prettyUrl();
211  self::toWww();
212  return self::prepare();
213  }
214 }
215 ?>
perm($banlist, $allowlist=null)
prettyUrl($file='index.php', $get='p')
directory($dir='index.php')
rewrite($status='on', $base='/', $port=443)
cache($type, $days)
errorPages($errpages)