ti-enxame.com

Existe alguma maneira de bloquear o acesso a componentes usando URL não SEF?

Meu cliente percebe que podemos acessar componentes no Joomla usando URL não SEF, mesmo quando o SEF está ativado.

Ele não gosta, porque sem Itemid no URL, a página está confusa. Por exemplo, http://www.joomla.org/index.php?option=com_content é o que ele não quer que as pessoas vejam em seu site.

Existe alguma maneira de bloquear o acesso ao site usando URLs não SEF quando o SEF está ativado na Configuração Global?

7
Hung Tran

Você pode criar um plugin do sistema com este código:

public function onAfterInitialise(){
    $app = JFactory::getApplication();
    $config = JFactory::getConfig();
    $uri = JUri::getInstance();
    if($config->get("sef") && $app->isSite() && $uri->getQuery()){
        throw new Exception("Not Found", 404);
    }
}

Então, se tivermos alguma coisa após o ponto de interrogação ?, lança um erro 404.

Em vez disso, gere um erro 404, você pode redirecionar o usuário para a página inicial, se desejar.

Editar:

Se você deseja permitir que alguma extensão use ponto de interrogação, você pode:

public function onAfterRoute(){
    $app = JFactory::getApplication();
    $config = JFactory::getConfig();
    $menu = $app->getMenu();
    if($config->get("sef") && $app->isSite() && !$menu->getActive()){
        throw new Exception("Not Found", 404);
    }
}

Se a rota atual não tiver um menu associado, ocorrerá um erro 404.

6
csbenjamin

Mas como os visitantes ocasionais adivinham os URLs que não são do SEF e os usam em vez do URL do SEF, para que eles possam ter uma visualização confusa do modelo?

De qualquer forma, uma maneira de evitar isso é usar uma extensão SEF de terceiros, que sempre converterá um não SEF no URL correspondente do SEF. Os visitantes não verão o não-SEF na barra de endereços do navegador.

Mas o problema com o modelo confuso não desaparecerá. Eu acho que esse problema se deve ao fato de que um item de menu diferente ou nenhum item de menu é considerado, durante a exibição das páginas, para que quaisquer sufixos, módulos ou outras coisas especiais destinadas a essas páginas sejam tratadas corretamente.

Para eliminar esse problema, você precisa atribuir essas páginas ao item de menu desejado.

2
FFrewin

Minha recomendação seria usar sh404sef e sempre fixar um itemid em URLs sem um. Consulte "Gerenciamento de ID do item" como parte de sua configuração:

http://anything-digital.com/sh404sef/docs/configuration.html

1
Chad Windnagle