A estrutura do arquivo é a seguinte
- Arquivos públicos:
/home/usrname/public_html
- CGI BIN, onde o software está sendo executado:
/home/usrname/public_html/cgi-bin
- Arquivos privados:
/home/usrname/public_html/_private
- Bancos de dados:
/home/usrname/public_html/_private/data
O que eu gostaria de fazer é converter o código abaixo do Apache 1.3.42 para um arquivo .htaccess Apache 2.4.12, aparentemente algumas mudanças durante o caminho SSL são o que eu realmente estou ficando preso principalmente. / p>
Quando você tenta qualquer documento com o caminho SSL, tudo o que vejo é o caminho _private e não o caminho public_html na fonte HTML para qualquer tipo de arquivo, como, CSS, imagens js, etc.
Eu também tenho problemas de permissão, que está pedindo para eu fazer o login durante o modo SSL, isso deve ser devido a um dos outros arquivos .htaccess
. Deve ser simples, mas de alguma forma eu não estou conseguindo as regras corretamente na linha ainda.
Aqui estão as linhas de código em cada arquivo .htaccess.
Arquivos públicos: / home / usrname / public_html
RewriteEngine On
RewriteCond %{HTTP_HOST} ^99\.00\.99\.000$
RewriteRule ^/?(.*)$ http://www.example.com/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^example.com$
RewriteRule ^/?(.*)$ http://www.example.com/$1 [R=301,L]
RewriteCond /home/usrname/public_html/%{REQUEST_FILENAME} -f
RewriteRule ^(.+) /home/usrname/public_html/$1 [L]
RewriteCond /home/usrname/public_html/_private/%{REQUEST_FILENAME} -f
RewriteRule ^(.+) /home/usrname/public_html/_private/$1 [L]
RewriteRule ^(.+) - [PT]
DirectoryIndex home.html index.htm index.html default.htm Default.htm
Action cgi-ccd /cgi-bin/aws.emp
AddHandler cgi-ccd html
AddHandler default-handler .gif
AddHandler default-handler .jpg
<FilesMatch "\.(inx|weo|lco|dbo|cdo|fpo|dao)">
Order Allow,Deny
Allow from env=local_ref
</FilesMatch>
<Files 403.shtml>
order allow,deny
allow from all
</Files>
Também temos esses arquivos .htaccess
na conta em seus respectivos caminhos.
Arquivos privados: / home / usrname / public_html / _private
AuthUserFile .htpasswd
AuthGroupFile /dev/null
AuthName Administrator
AuthType Basic
<limit GET>
require valid-user
</limit>
Bancos de dados: / home / usrname / public_html / _private / data
AuthUserFile .htpasswd
AuthGroupFile /dev/null
AuthName Administrator
AuthType Basic
<limit GET>
require valid-user
</limit>
CGI BIN: / home / usrname / public_html / cgi-bin
Options +ExecCGI
Order allow,deny
Allow from all
Talvez haja algo com o modo como todos funcionam juntos, que é o problema agora no Apache 2.4+? Talvez seja as permissões de chamar o arquivo do diretório CGI-BIN, posso mover isso, se necessário?
Os redirecionamentos 301 são bastante simples, aparentemente. A sintaxe pode ser alterada para a versão, mas elas parecem simples o suficiente para serem programadas. Eu acho que há algum conflito com algo como Opções FollowSymLinks SymLinksIfOwnerMatch ExecCGI Inclui MultiViews ou alguma outra combinação; Eu tentei várias combinações sem sorte.
No final, tudo o que estou tentando fazer é mascarar o caminho completo do caminho cgi-bin do software, mas fornecer o caminho antigo de volta como um redirecionamento 301, para que não percamos nenhum link que possa ser indexado e marcado.
.i.e.
From: http://www.example.com/cgi-bin/aws.emp/any-document-file-name.html
To: http://www.example.com/any-document-file-name.html
ou no modo SSL.
From: https://www.example.com/cgi-bin/aws.emp/any-document-file-name.html
To: https://www.example.com/any-document-file-name.html
Descobri que se eu alterar o seguinte de %{REQUEST_FILENAME}
para %{REQUEST_URI}
que pelo menos permite que tudo funcione, a menos que você precise do caminho SSL, ele mostrará o caminho _private para qualquer tipo de arquivo, como css, js, imagens e assim por diante.
Espero ter fornecido informações suficientes para ajudar a resolver este problema, infelizmente eu sou muito inexperiente com mod_rewrites e, portanto, parece um pouco de magia negra agora. Isso pode levar semanas para resolver simples coisas aparentemente sozinhas.
Qualquer ajuda é muito apreciada, eu quero migrar para fora do Apache 1.3.42 já que está muito atrasado e assim que este problema for resolvido, eu posso.