Eu tenho um problema com reescrever no apache no CentOS.
Se eu carregar meu site do HTTP, tudo funcionará bem. Reescreva as regras de trabalho. Depois de alterá-lo para HTTPS, as regras de reescrita não funcionam.
Depois de alguns testes e navegando pelos tópicos, percebi que de alguma forma o apache não está pegando o arquivo .htaccess se o site é acessado de HTTPS.
O que eu fiz para testar foi inserir negação de todos no arquivo .htaccess. Quando eu acesso o link ele mostra o erro Proibido. Quando eu acesso via link eu ainda posso carregar a página, o que significa que o .htaccess não está sendo lido.
Eu verifiquei o httpd.conf e o ssl.conf e também garanti que o AllowOverride All está definido. Existe algum outro lugar que eu poderia ter perdido?
Aqui está minha configuração httpd.conf:
<VirtualHost *:443>
SSLEngine On
SSLCertificateFile /etc/httpd/ssl/my.domain.crt
SSLCertificateKeyFile /etc/httpd/ssl/my.domain.key
SSLCACertificateFile /etc/httpd/ssl/caroot.crt
ServerAdmin [email protected]
ServerName my.domain.com
ServerAlias my.domain.com
DocumentRoot /var/www/my.domain.com/public_html/
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/my.domain.com/public_html/>
Options Indexes FollowSymLinks ExecCGI MultiViews
#RewriteEngine on
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog /var/www/my.domain.com/logs/ssl-error.log
CustomLog /var/www/my.domain.com/logs/ssl-access.log combined
</VirtualHost>
E abaixo está o meu arquivo .htaccess colocado em /var/www/my.domain.com/public_html /
AddType text/x-component .htc
Options FollowSymLinks
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
</IfModule>
<IfModule !mod_rewrite.c>
ErrorDocument 404 /index.php
</IfModule>
Abaixo está a configuração para a porta 80:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName my.domain.com
ServerAlias my.domain.com
DocumentRoot /var/www/my.domain.com/public_html/
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/my.domain.com/public_html/>
Options Indexes FollowSymLinks ExecCGI MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog /var/www/my.domain.com/logs/error.log
CustomLog /var/www/my.domain.com/logs/access.log combined
</VirtualHost>