Você tem um arquivo .htaccess em ./public_html/? Se sim, o que tem dentro? A maneira como o .htaccess trabalha é dando ao diretório mais próximo da prioridade real da raiz.
Como exemplo:
/home/username/public_html/.htaccess
recebe uma prioridade maior (ou seja, mais controle) do que
/home/username/public_html/sub_directory/.htaccess
Se o arquivo .htaccess
principal estiver definindo as regras de uma forma e o subdiretório estiver definindo-as como outras, é possível que você execute problemas (por exemplo, um erro).
Se você estiver definido em sua raiz da web real, as linhas a seguir podem estar causando alguns problemas, pois o cPanel permite que os administradores do servidor definam essas opções por padrão no WHM. Se eles já estiverem definidos (especificamente -Indexes), você provavelmente verá um erro.
Options All -Indexes
Options +FollowSymLinks -MultiViews
Nota : A diretiva -Indexes
é normalmente configurada por padrão antes mesmo de os clientes serem colocados em um servidor (ou deveria ser, a menos que haja uma razão específica para isso), FYI. Essa é mais uma recomendação de segurança para impedir a navegação no diretório, pois nem todo cliente saberá que, a menos que haja um arquivo index.[ext]
em todos os diretórios, seus diretórios estarão abertos para quem quiser ver.
Se remover esses erros, você encontrou o problema :). Se a remoção dessas linhas não funcionar, faça um teste & erro é onde precisamos começar.
Voltar para o início, procure nos diretórios que residem acima do diretório com o qual você está tendo problemas. Verifique os arquivos .htaccess e certifique-se de ter "mostrar ou mostrar arquivos ocultos" marcados ou definidos como "yes" no programa S / FTP que você está usando, pois nem sempre são visíveis por padrão.
A partir daqui, o melhor curso de ação seria fazer o backup de cada arquivo .htaccess e adicioná-los novamente um por um até você executar outro erro. Dessa forma, você pode marcar o upload do arquivo que trouxe o erro e podemos dar uma olhada nele.
Atualização # 01
Como o culpado pelo erro provavelmente foi o -Indexes
, você pode adicionar o seguinte de volta ao arquivo .htaccess
:
Options +FollowSymLinks -MultiViews
Se isso não resolver o erro 404, tente o seguinte:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
# Adds Trailing Slash to the URI as long as it's not for a
# file.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/|#(.*))$
RewriteRule ^(.*)$ http://subdomain.example.com/$1/ [R=301,L]
# Checks to make sure the request is a directory.
# Checks to see if the request matches a file with a .php ext.
# If all is well, push the request through to the matching file.
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^([^\.]+)/$ http://subdomain.example.com/$1.php