<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://wiki.paskvil.com/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.paskvil.com/index.php?action=history&amp;feed=atom&amp;title=Short_Notes_on_Apache</id>
		<title>Short Notes on Apache - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.paskvil.com/index.php?action=history&amp;feed=atom&amp;title=Short_Notes_on_Apache"/>
		<link rel="alternate" type="text/html" href="https://wiki.paskvil.com/index.php?title=Short_Notes_on_Apache&amp;action=history"/>
		<updated>2026-08-14T02:59:14Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.22.0</generator>

	<entry>
		<id>https://wiki.paskvil.com/index.php?title=Short_Notes_on_Apache&amp;diff=244&amp;oldid=prev</id>
		<title>Admin: added domain redirection</title>
		<link rel="alternate" type="text/html" href="https://wiki.paskvil.com/index.php?title=Short_Notes_on_Apache&amp;diff=244&amp;oldid=prev"/>
				<updated>2014-03-14T08:49:59Z</updated>
		
		<summary type="html">&lt;p&gt;added domain redirection&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 08:49, 14 March 2014&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 129:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 129:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/FilesMatch&amp;gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/FilesMatch&amp;gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''9. Redirect (Sections) to https://'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''9&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;. Redirect One Domain to Another'''&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;-----&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;pre&amp;gt;RewriteEngine On&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;RewriteCond %{HTTP_HOST} olddomain\.com$ [NC]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;RewriteRule ^(.*)$ http://www.newdomain.com/$1 [L,R=301]&amp;lt;/pre&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;'''10&lt;/ins&gt;. Redirect (Sections) to https://'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-----&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-----&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 142:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 149:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;10&lt;/del&gt;. Simple MVC using .htaccess'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;11&lt;/ins&gt;. Simple MVC using .htaccess'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-----&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-----&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 150:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 157:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;RewriteRule !robots\.txt|\.(js|ico|gif|jpg|png|css|flv|swf)$ index.php&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;RewriteRule !robots\.txt|\.(js|ico|gif|jpg|png|css|flv|swf)$ index.php&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;11&lt;/del&gt;. Provide Different Page Versions based on User Agent'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;12&lt;/ins&gt;. Provide Different Page Versions based on User Agent'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-----&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-----&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.paskvil.com/index.php?title=Short_Notes_on_Apache&amp;diff=88&amp;oldid=prev</id>
		<title>Admin: Created page with &quot;== Note - serving of local files ==  '''Note''': Often the initial installation of Apache has &lt;tt&gt;&amp;lt;Directory /&amp;gt;&lt;/tt&gt; directive (directive for the root of the filesystem) se...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.paskvil.com/index.php?title=Short_Notes_on_Apache&amp;diff=88&amp;oldid=prev"/>
				<updated>2012-06-01T20:33:32Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;== Note - serving of local files ==  &amp;#039;&amp;#039;&amp;#039;Note&amp;#039;&amp;#039;&amp;#039;: Often the initial installation of Apache has &amp;lt;tt&amp;gt;&amp;lt;Directory /&amp;gt;&amp;lt;/tt&amp;gt; directive (directive for the root of the filesystem) se...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Note - serving of local files ==&lt;br /&gt;
&lt;br /&gt;
'''Note''': Often the initial installation of Apache has &amp;lt;tt&amp;gt;&amp;amp;lt;Directory /&amp;amp;gt;&amp;lt;/tt&amp;gt; directive (directive for the root of the filesystem) set to &amp;quot;Allow from All&amp;quot;, in '''[Apache config dir]/sites-available/default'''! This means that server can server '''any''' file from the file system, not just the files in the ''htdocs'' document folder, which you typically want!&lt;br /&gt;
&lt;br /&gt;
To avoid this, simply change this to &amp;quot;Deny from All&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Self-Signed SSL Certificate ==&lt;br /&gt;
&lt;br /&gt;
They might not pass as customer-friendly - in fact, if you need https/ssl for customer communication, you should always use signed certificates, as those do induce trust - but often you have private sections/domains/sites where self-signed is just fine... or you might just wanna test the ssl while waiting for the signed certificate.&lt;br /&gt;
&lt;br /&gt;
Here are only listed steps to get to your certificate; for details and explanations, see e.g. [http://www.akadia.com/services/ssh_test_certificate.html akadia.com].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# openssl genrsa -des3 -out server.key 1024&lt;br /&gt;
# openssl req -new -key server.key -out server.csr&lt;br /&gt;
# cp server.key server.key.org&lt;br /&gt;
# openssl rsa -in server.key.org -out server.key&lt;br /&gt;
# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt&lt;br /&gt;
# cp server.crt /etc/apache2/cert/ssl.crt&lt;br /&gt;
# cp server.key /etc/apache2/cert/ssl.key&lt;br /&gt;
# chmod 400 /etc/apache2/cert/ssl.crt /etc/apache2/cert/ssl.key&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Enable SSL/HTTPS in Apache ==&lt;br /&gt;
&lt;br /&gt;
'''HowTo''': Use the following virtual host definition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
    ServerName ssl-name&lt;br /&gt;
    DocumentRoot /var/www/ssl/root&lt;br /&gt;
    SSLEngine on&lt;br /&gt;
    SSLCertificateFile /etc/apache2/server.crt&lt;br /&gt;
    SSLCertificateKeyFile /etc/apache2/server.key&lt;br /&gt;
    SetEnvIf User-Agent &amp;quot;.*MSIE.*&amp;quot; nokeepalive ssl-unclean-shutdown&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where ''certificate file'' and the ''certificate key file'' are either authority-signed or self-signed certificate files (see above), and add&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;NameVirtualHost *:443&lt;br /&gt;
Listen 443&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to '''/etc/apache2/ports.conf''' and restart Apache.&lt;br /&gt;
&lt;br /&gt;
== .htaccess and mod_rewrite Tricks ==&lt;br /&gt;
&lt;br /&gt;
Mostly based on [http://www.queness.com/post/5421/17-useful-htaccess-tricks-and-tips 17 Useful .htaccess Tricks and Tips]&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
&lt;br /&gt;
'''1. Set Timezone'''&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;SetEnv TZ Australia/Melbourne&amp;lt;/pre&amp;gt;&lt;br /&gt;
[http://www.php.net/manual/en/timezones.php List of timezones].&lt;br /&gt;
&lt;br /&gt;
'''2. SEO Friendly 301 Permanent Redirects'''&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
Modern search engines have the capability to detect 301 Permanent Redirects and update its existing records.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Redirect 301 http://www.domain.com/home http://www.domain.com/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''3. Skip the Download Dialogue'''&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
The following defines given types as octet-stream, thus making it &amp;quot;only to download&amp;quot;; clicking the link to such resource will skip &amp;quot;open / save&amp;quot; dialog and will start download immediately.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;AddType application/octet-stream .pdf&lt;br /&gt;
AddType application/octet-stream .zip&lt;br /&gt;
AddType application/octet-stream .mov&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''4. Skip or Force www.'''&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
One of the SEO guidelines is, make sure there is only one URL pointing to your website.&lt;br /&gt;
&lt;br /&gt;
To force URL's without www.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;RewriteEngine On&lt;br /&gt;
RewriteCond %{HTTPS} =off&lt;br /&gt;
RewriteCond %{HTTP_HOST} ^www\..+$ [NC]&lt;br /&gt;
RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To force www. in the URL, with the exception of subdom.domain.com:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;RewriteEngine On&lt;br /&gt;
RewriteCond %{HTTPS} =off&lt;br /&gt;
RewriteCond %{HTTP_HOST} !^www\.&lt;br /&gt;
RewriteCond %{HTTP_HOST} !^subdom\.&lt;br /&gt;
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''5. Custom Error Pages'''&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ErrorDocument 401 /error/401.php&lt;br /&gt;
ErrorDocument 403 /error/403.php&lt;br /&gt;
ErrorDocument 404 /error/404.php&lt;br /&gt;
ErrorDocument 500 /error/500.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''6. Compress Files'''&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
You need to have &amp;lt;tt&amp;gt;deflate&amp;lt;/tt&amp;gt; module installed and enabled.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;AddOutputFilterByType DEFLATE text/plain&lt;br /&gt;
AddOutputFilterByType DEFLATE text/html&lt;br /&gt;
AddOutputFilterByType DEFLATE text/xml&lt;br /&gt;
AddOutputFilterByType DEFLATE text/css&lt;br /&gt;
AddOutputFilterByType DEFLATE application/xml&lt;br /&gt;
AddOutputFilterByType DEFLATE application/xhtml+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE application/rss+xml&lt;br /&gt;
AddOutputFilterByType DEFLATE application/javascript&lt;br /&gt;
AddOutputFilterByType DEFLATE application/x-javascript&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''7. Cache Files'''&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
The following example sets caching of multimedia files to 30 days:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;FilesMatch &amp;quot;.(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf)$&amp;quot;&amp;gt;&lt;br /&gt;
  Header set Cache-Control &amp;quot;max-age=2592000&amp;quot;&lt;br /&gt;
&amp;lt;/FilesMatch&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''8. Disable Caching for Certain File Type'''&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
The following example disables caching of scripts:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;FilesMatch &amp;quot;.(pl|php|cgi|spl|scgi|fcgi)$&amp;quot;&amp;gt;&lt;br /&gt;
  Header unset Cache-Control&lt;br /&gt;
&amp;lt;/FilesMatch&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''9. Redirect (Sections) to https://'''&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
The following forces /login and /signup sections of your site to use https.&lt;br /&gt;
&lt;br /&gt;
Of course, it's recommendable that you have a signed SSL certificate.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;RewriteEngine on&lt;br /&gt;
RewriteCond %{HTTPS} =off&lt;br /&gt;
RewriteCond %{REQUEST_URI} /login [NC,OR]&lt;br /&gt;
RewriteCond %{REQUEST_URI} /signup [NC]&lt;br /&gt;
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''10. Simple MVC using .htaccess'''&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
You can redirect all requests to a single script file, and serve content based on REQUEST_URI:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;RewriteEngine On&lt;br /&gt;
RewriteRule !robots\.txt|\.(js|ico|gif|jpg|png|css|flv|swf)$ index.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''11. Provide Different Page Versions based on User Agent'''&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
You can provide different versions of your site for different browsers (e.g. ''links'' as a text-based browser, and for mobile devices):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;RewriteEngine On&lt;br /&gt;
&lt;br /&gt;
# MSIE&lt;br /&gt;
RewriteCond %{HTTP_USER_AGENT} ^Mozilla/4(.*)MSIE&lt;br /&gt;
RewriteRule ^index\.html$ /index.ie.html [L]&lt;br /&gt;
&lt;br /&gt;
# Netscape / Mozilla&lt;br /&gt;
RewriteCond %{HTTP_USER_AGENT} ^Mozilla/5(.*)Gecko&lt;br /&gt;
RewriteRule ^index\.html$ /index.full.html [L]&lt;br /&gt;
&lt;br /&gt;
# Lynx, text based&lt;br /&gt;
RewriteCond %{HTTP_USER_AGENT} ^Lynx/&lt;br /&gt;
RewriteRule ^index\.html$ /index.light.html [L]&lt;br /&gt;
&lt;br /&gt;
# Mobile version of your site&lt;br /&gt;
RewriteCond %{HTTP_USER_AGENT} ^.*(iPad|iPhone).*$&lt;br /&gt;
RewriteRule ^(.*)$ http://ipad.domain.com [R=301]&lt;br /&gt;
&lt;br /&gt;
# All other&lt;br /&gt;
RewriteRule ^index\.html$ /index.medium.html [L]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Security ===&lt;br /&gt;
&lt;br /&gt;
'''1. Hotlinking Protection with .htaccess'''&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
Block all multimedia file requests that do not come from direct link or from your site:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;RewriteEngine On&lt;br /&gt;
RewriteCond %{HTTP_REFERER} !^$&lt;br /&gt;
RewriteCond %{HTTP_REFERER} !^http://(www.)?domain.com/.*$ [NC]&lt;br /&gt;
RewriteRule .(gif|jpg|swf|flv|png)$ /no-hotlink.html [R=302,L]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''2. Prevent Hacks'''&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
Block some common malicious URL hacks:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;RewriteEngine On&lt;br /&gt;
&lt;br /&gt;
# proc/self/environ? no way!&lt;br /&gt;
RewriteCond %{QUERY_STRING} proc/self/environ [OR]&lt;br /&gt;
&lt;br /&gt;
# Block out any script trying to set a mosConfig value through the URL&lt;br /&gt;
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]&lt;br /&gt;
&lt;br /&gt;
# Block out any script trying to base64_encode crap to send via URL&lt;br /&gt;
RewriteCond %{QUERY_STRING} base64_encode.*(.*) [OR]&lt;br /&gt;
&lt;br /&gt;
# Block out any script that includes a &amp;lt;script&amp;gt; tag in URL&lt;br /&gt;
RewriteCond %{QUERY_STRING} (&amp;lt;|%3C).*script.*(&amp;gt;|%3E) [NC,OR]&lt;br /&gt;
&lt;br /&gt;
# Block out any script trying to set a PHP GLOBALS variable via URL&lt;br /&gt;
RewriteCond %{QUERY_STRING} GLOBALS(=|[|\%[0-9A-Z]{0,2}) [OR]&lt;br /&gt;
&lt;br /&gt;
# Block out any script trying to modify a _REQUEST variable via URL&lt;br /&gt;
RewriteCond %{QUERY_STRING} _REQUEST(=|[|\%[0-9A-Z]{0,2})&lt;br /&gt;
&lt;br /&gt;
# Send all blocked request to page with 403 Forbidden error!&lt;br /&gt;
RewriteRule ^(.*)$ no-way.html [F,L]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''3. Block Access to Your .htaccess File'''&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# secure .htaccess file&lt;br /&gt;
&amp;lt;Files .htaccess&amp;gt;&lt;br /&gt;
  Order Allow,Deny&lt;br /&gt;
  Deny from All&lt;br /&gt;
&amp;lt;/Files&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# prevent viewing of a specific file&lt;br /&gt;
&amp;lt;Files secretfile.jpg&amp;gt;&lt;br /&gt;
  Order Allow,Deny&lt;br /&gt;
  Deny from All&lt;br /&gt;
&amp;lt;/Files&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# multiple files / file types&lt;br /&gt;
&amp;lt;FilesMatch &amp;quot;.(htaccess|htpasswd|ini|phps|fla|psd|log|sh)$&amp;quot;&amp;gt;&lt;br /&gt;
  Order Allow,Deny&lt;br /&gt;
  Deny from All&lt;br /&gt;
&amp;lt;/FilesMatch&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''4. Rename .htaccess Files'''&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;AccessFileName htacc.ess&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''5. Disable Directory Browsing'''&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# disable directory browsing&lt;br /&gt;
Options All -Indexes&lt;br /&gt;
&lt;br /&gt;
# enable directory browsing&lt;br /&gt;
Options All +Indexes&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''6. Change Default Index Page'''&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;DirectoryIndex my-home.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''7. Block Unwanted Visitor based on Referring Domain'''&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# block visitors referred from indicated domains&lt;br /&gt;
RewriteEngine on&lt;br /&gt;
RewriteCond %{HTTP_REFERER} scumbag.com [NC,OR]&lt;br /&gt;
RewriteCond %{HTTP_REFERER} wormhole.com [NC,OR]&lt;br /&gt;
RewriteRule .* - [F]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''8. Blocking Request based on User-Agent Header'''&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# block certain bots and spiders&lt;br /&gt;
SetEnvIfNoCase ^User-Agent$ .*(craftbot|download|extract|stripper|sucker|ninja|clshttp|webspider|leacher|collector|grabber|webpictures) HTTP_SAFE_BADBOT&lt;br /&gt;
SetEnvIfNoCase ^User-Agent$ .*(libwww-perl|aesop_com_spiderman) HTTP_SAFE_BADBOT&lt;br /&gt;
Deny from env=HTTP_SAFE_BADBOT&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''9. Secure Directories by Disabling Execution of Scripts'''&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;AddHandler cgi-script .php .pl .py .jsp .asp .htm .shtml .sh .cgi&lt;br /&gt;
Options -ExecCGI&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&lt;br /&gt;
* [http://httpd.apache.org/docs/2.0/howto/htaccess.html .htaccess files in Apache2]&lt;br /&gt;
* [http://httpd.apache.org/docs/2.0/programs/htpasswd.html htpasswd utility in Apache2]&lt;br /&gt;
* [http://httpd.apache.org/docs/2.0/howto/auth.html Authentication, Authorization and Access Control in Apache2]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>