Necesitamos editar el archivo ports.conf cambiando el puerto 80, en la linea listen, por el puerto que necesitemos.
sudo nano /etc/apache2/ports.conf
Guardamos y reiniciamos el Apache.
$ sudo /etc/init.d/apache2 restart
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
1.Editar el archivo application/config.php, añadiendo la carpeta donde tienes la aplicación, por ejemplo localhost/micarpeta/.
$config['base_url'] = 'http://'.$_SERVER['SERVER_NAME'].'/micarpeta
/';
$config['index_page'] = '';
$config['uri_protocol'] = 'AUTO';
2.Creal un archivo htaccess en raíz de la carpeta de la aplicación.
RewriteEngine on RewriteCond $1 !^(index\.php|resources|robots\.txt) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L,QSA]
No olvides asegurarte de tener activado el rewrite en apache y las directivas necesarias en el archivo de configuración.
Puedes comprobar si esta activado el módulo de mod_rewrite con la función infophp().
Activar mod_rewrite: sudo a2enmod rewrite Abrir el Archivo: sudo nano /etc/apache2/apache2.conf Reemplazar AllowOverrideNone por AllowOverride All: <Directory /var/www/> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> Reiniciar apache: sudo service apache2 restart
En algunos casos nos vemos obligados a cambiar de dominio y queremos que todas nuestras páginas sean direccionadas a ese nuevo dominio.
Para hacer esto tenemos varias soluciones y esta es una de ellas:
En nuestro fichero de configuración .htaccess colocamos:
RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule (.*)(.*)$ index.php?url=$1
Y en nuestro fichero index.php o como lo llaméis:
<?php $url = "http://www.url.es".$_SERVER['REQUEST_URI']; Header( "HTTP/1.1 301 Moved Permanently" ); Header( "Location: $actual" ); ?>
Ahora cuando llaméis por ejemplo a:
www.url1.com/unapágina/ direccionará a www.url.es/unapágina/
1º Activamos Mod_rewrite
sudo a2enmod rewrite
2º Reiniciamos Apache
sudo service apache2 restart
3º Para que apache use los archivos .htaccess, editamos el default VirtualHost con:
sudo nano /etc/apache2/sites-available/default
4º Sustituimos:
AllowOverride None por AllowOverride All
5º Por último volvemos a reiniciar apache.
sudo service apache2 restart
Si te encuentras con un error 500 por la ejecución de un script, en mi caso fue por phpmailer y un bucle de envíos, y en el log de apache te aparece «mod_fcgid: read data timeout in 45 seconds» no desesperes tengo una solución. Básicamente ocurre por que php está funcionando con FastCGI y tiene un tiempo establecido. Podemos configurarlo de la siguiente manera:
Editar:
> vi /var/www/vhosts/tudominio.com/conf/vhost.conf Incluir: <IfModule mod_fcgid.c> ProcessLifeTime 7200 IPCCommTimeout 7200 IPCConnectTimeout 300 </IfModule> Reconstruimos: /usr/local/psa/admin/bin/httpdmng –reconfigure-domain tudominio.com Reiniciamos Apache: service httpd restart