Solicitações de redirecionamento Nginx para subdiretórios e arquivos inexistentes no diretório raiz

2

Eu quero redirecionar todas as solicitações de subdiretórios inexistentes e arquivos e arquivos inexistentes dentro de subdiretórios inexistentes para a página raiz.

Ex. sampledomain.com/jahsdjksf/sfhsafh.php
or sampledomain.com/jahsdjksf/sdfsndf/sfhsafh.php 
or sampledomain.com/sfhsafh.php

tudo de volta para sampledomain.com

atualmente tenho o seguinte adicionado às minhas regras

root   /home/nginx/domains/randwebsite.com/public/;
index  index.php;

e

try_files    $uri $uri/ /index.php;

mas o problema é quando eu tento qualquer subdiretório aleatório que não existe, ele carrega a página principal sob essa url e ela é quebrada, já que o css etc está usando essa url com a sub-pasta inexistente, mas funciona perfeitamente com arquivos existentes sem subdiretórios

ex. sampledomain.com/sdlfsdlfsf.php
    
por Sherif 14.12.2016 / 19:36

1 resposta

2

Se você quiser forçar um redirecionamento, pode usar um local nomeado. Algo ao longo destas linhas pode funcionar para você:

root /home/nginx/domains/randwebsite.com/public;
index index.php;

location / {
    try_files $uri $uri/ @redirect;
}
location ~ \.php$ {
    try_files $uri @redirect;
    ...
}
location @redirect {
    return 301 /index.php;
}

Veja este documento para saber mais.

    
por 14.12.2016 / 23:28

Tags