AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 1119370
Accepted
2WFR
2WFR
Asked: 2023-01-04 09:53:04 +0800 CST2023-01-04 09:53:04 +0800 CST 2023-01-04 09:53:04 +0800 CST

Redirecione www para não www e redirecione para index.php

  • 772

minha pasta www tem o seguinte .htaccess

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

minha pasta api (dentro da pasta www ) tem o seguinte .htaccess

RewriteEngine On
RewriteBase /api/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /api/index.php [L]

Eu gostaria de redirecionar www para URLs não www, mantendo as regras para index.php. Já tentei muitas coisas sem sucesso...

O que eu tentei:

https://stackoverflow.com/questions/234723/generic-htaccess-redirect-www-to-non-www

Atualizar :

Acho que só preciso de uma sucessão de regras

Aquilo é :

1/ redirecione www para não www url e vá para 2

2/ Se o arquivo não existir -> redirecionar para index.php

RewriteEngine On
RewriteBase 
%% Here redirect www to non www url %%
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
.htaccess
  • 1 1 respostas
  • 42 Views

1 respostas

  • Voted
  1. Best Answer
    MrWhite
    2023-01-04T14:02:18+08:002023-01-04T14:02:18+08:00

    Pelo que você afirmou nos comentários, não parece haver um requisito para manter dois .htaccessarquivos separados. Neste caso seria mais simples manter apenas um .htaccessarquivo na raiz do documento (supondo que sejam parentes).

    Também estou fazendo as seguintes suposições sobre sua "API", o que também simplifica as diretivas:

    • Todas as solicitações do formulário /api/<anything>devem ser encaminhadas para/api/index.php
    • Não há arquivos físicos (ou diretórios) que precisem ser acessados ​​via /api/<file>. (Afinal, é uma "API".)

    Você pode fazer algo como o seguinte no .htaccessarquivo raiz (e remover o /api/.htaccessarquivo completamente).

    RewriteEngine On
    
    # Canonical redirect www to non-www
    RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
    RewriteRule ^ https://example.com%{REQUEST_URI} [R=301,L]
    
    # Prevent further processing if the front-controller(s) has already been requested
    RewriteRule ^(api/)?index\.php$ - [L]
    
    # Rewrite requests for the API
    RewriteRule ^api/. api/index.php [L]
    
    # Rewrite requests for the root application
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . index.php [L]   
    

    A RewriteBasediretiva não é necessária aqui.

    Observe que você deve primeiro testar com um redirecionamento 302 (temporário) para evitar possíveis problemas de cache. E você provavelmente precisará limpar os caches do seu navegador (e qualquer intermediário) antes de testar.

    No entanto, uma pequena preocupação com isso (como mencionei nos comentários) é a implementação de um redirecionamento canônico para solicitações ao seu arquivo /api/. Os scripts que estão fazendo solicitações para uma API geralmente não seguem redirecionamentos - espera-se que essas solicitações já estejam sendo feitas para o URL canônico. Portanto, a implementação de um redirecionamento para essas solicitações pode interromper essas chamadas de API "incorretas" para o nome de host não canônico.

    • 0

relate perguntas

  • Como obter o Apache2 para redirecionar para um subdiretório

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve