apache rewrite to www

ideea e ca pe orice domeniu se poate intra in doua moduri : domeniu.tld si www.domeniu.tld ( iar daca nu se poate intra prin una din aceste modalitati – aceasta reprezinta anomalii ). Dar, totusi, se doreste raspandirea pe internet doar a unui link dintre acestea 2: doar domeniu.tld sau doar www.domeniu.tld, pentru ca ele pot fi vazute de motoarele de cautare ca 2 domenii diferite.

Acum reprezint o modalitate de a lasa ambele domenii valide si facem doar astfel ca domeniu.tld sa redirectioneze automat catre www.domeniu.tld .

Acest lucru este posibil cu modulul rewrite din apache2. Si pentru asta modificam fisierul .htaccess cu urmatorul continut:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.domeniu\.tld$ [NC]
RewriteRule ^(.*)$ http://www.domeniu.tld/$1 [R=301,L]

acum orice accesare a url-ului domeniu.tld va returna un cod de status : 301 = Moved Permanently ( A status code of 301 tells a client that the resource they asked for has permanently moved to a new location. The response should also include this location. It tells the client to use the new URL the next time it wants to fetch the same resource. ) si va redirectiona catre www.domeniu.tld

htaccess options -Indexes

In momentul cand ai un site, cu continut, si se incearca deschiderea unui URL care directioneaza catre un directoriu al site-ului si in acel directoriu nu este prezent nici un fisier de index al directoriului ( DirectoryIndex, exemplu: index.html, index.php, default.html ) in acel directoriu, atunci serverul va afisa o pagina cu o lista a tuturor fisierelor/directoare din directoriu respectiv. Acesta este considerata o problema grava in securitatea site-ului caci serverul este setat ca implicit sa arate acest gen de informatii.

Noi trebuie explicit sa dezactivam aceasta optiune. Ea se poate face in 2 locuri specificand optiunea prin :

Options -Indexes

Minusul ( – ) din fata lui Indexes inseamna dezactivarea optiunii.

Exemplu la setarea serverului apache cand se seteaza domeniile si accesul la directorii:

<VirtualHost *:80>
  ServerName svn.com
  ServerAdmin webmaster@puk.ro
  DocumentRoot /var/www/svn.com
  ErrorLog /var/log/apache2/svn.com.log
  CustomLog /var/log/apache2/svn.com-access.log combined
  Options -Indexes
</VirtualHost>

Iar daca nu aveti acces la aceste fisiere de configurare, se poate dezactiva optiunea specificand linia in fisierul .htaccess care poate fi pus in root-ul site-ului:

Options -Indexes
#aici alte reguli pentru .htaccess

atat.

howto secure svn server

Acest post vine in continuarea post-ului de instalare a unui server de svn. Voi face serverul de svn sa permita lucrul cu userii. Sa presupunem ca avem mai multe proiecte ( respectiv pentru fiecare proiect cate un repository aparte ) si in fiecare proiect lucreaza doar anumite persoane care va trebui sa aiba acces la acele proiecte.

Acum avem 2 proiecte : projectx si projecty :

root@srv1:~# cd /var/svn/
root@srv1:/var/svn# ls
root@srv1:/var/svn# svnadmin create projectx
root@srv1:/var/svn# svnadmin create projecty
root@srv1:/var/svn# ls -lah
total 16K
drwxr-xr-x  4 root root 4.0K 2010-02-07 17:20 .
drwxr-xr-x 16 root root 4.0K 2010-02-06 18:10 ..
drwxr-xr-x  6 root root 4.0K 2010-02-07 17:20 projectx
drwxr-xr-x  6 root root 4.0K 2010-02-07 17:20 projecty
root@srv1:/var/svn# chown -R www-data:www-data *
root@srv1:/var/svn# ls -lah
total 16K
drwxr-xr-x  4 root     root     4.0K 2010-02-07 17:20 .
drwxr-xr-x 16 root     root     4.0K 2010-02-06 18:10 ..
drwxr-xr-x  6 www-data www-data 4.0K 2010-02-07 17:20 projectx
drwxr-xr-x  6 www-data www-data 4.0K 2010-02-07 17:20 projecty

Trebuie sa facem nishte modificari ale serverului apache astfel ca sa permita accesul la toate proiectele ( repository-uri ) create.

Continue reading howto secure svn server

howto install svn server

Cazul practic se face pe o masina de ubuntu 9.04 server. Acces la serverul svn va fi prin http.

1. Pentru inceput instalam SVN si modulul de interconectare apache-svn.

root@srv1:~# apt-get install subversion libapache2-svn

2. Creez un folder unde vor fi toate proiectele de svn :

root@srv1:~# cd /var
root@srv1:/var# mkdir svn

3. Acum trebuie sa creem un repository de subversion (SVN) pentru proiectu projectx:

root@srv1:/var/svn# svnadmin create projectx

4. Modificam fisierul de configurare a modulului de webdav a svn-ului:

root@srv1:/var/svn# vi /etc/apache2/mods-enabled/dav_svn.conf

5. In fisierul de configurare, tagul Location specifica adresa de unde va putea fi accesat svn ca adresa de URL, ex : http://www.myserver.com/projectx

&lt;Location /projectx&gt;

Continue reading howto install svn server

[apache] custom 404 error page

Fiecare dintre noi a intra pe o pagina web care nu exista. Asta se poate intimpla din mai multe cauze  : culegi url de mana si gresesti vre-o 2 caractere, sau au fost facute modificari pe site si astfel o pagina veche nu mai este disponibila. Motive si cauze sunt multe, ideea e ca la intrarea intr-un url invalid, se deschide o pagina cu eroarea 404 – pagina care este definita la nivel de server si… arata foarte prost.

( exemplu de o pagina 404 )

De aceea e bine sa customizezi aceasta pagina ca sa poti prelucra informatiile si sa directezi frumos utilizatorul pe calea cea buna.

Continue reading [apache] custom 404 error page

[ubuntu] apache enable virtual hosts

fisierele de configurare se afla in :

/etc/apache2/

fisierele de configurare a domeniilor sunt in

/etc/apache2/sites-available

iar, apache2 le activeaza pe alea care sunt in directoriu :

/etc/apache2/sites-enabled
husanu@srv1:/etc/apache2/sites-enabled$ ls -l
total 0
lrwxrwxrwx 1 root root 39 2010-01-09 22:45 a.com.conf -&gt; /etc/apache2/sites-available/a.com.conf

si continutul fisierului de configurare a.com.conf

<VirtualHost *:80>
    ServerName a.com
    ServerAdmin webmaster@puk.ro
    DocumentRoot /var/www/a.com
    ErrorLog /var/log/apache2/a.com.log
    CustomLog /var/log/apache2/a.com.access.log combined
</VirtualHost>
<VirtualHost *:80>
    ServerName a.a.com
    ServerAdmin webmaster@puk.ro
    DocumentRoot /var/www/a.a.com
    ErrorLog /var/log/apache2/a.a.com.log
    CustomLog /var/log/apache2/a.a.com-access.log combined
</VirtualHost>
acest fisier de configurare raspunde pt domeniile a.com si a.a.com