Quais regras de htaccess REMOVERão o subdiretório que atende ao site a partir do URI (404, se incluído) e links internos?

0

** CONSULTE ACIMA ABAIXO *****

Meu site de domínio principal deve ser servido de um subdiretório no meu servidor com o mesmo nome do domínio, então provavelmente será confuso ler esse bloco confuso de meu webroot .htaccess:

<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteBase /

  # remove www
  RewriteCond %{HTTP_HOST} ^www\.(.+)$
  RewriteRule ^.*$ %1 [NC,QSA,R=301]

  #RewriteCond %{ENV:REDIRECT_STATUS} . [OR]
  RewriteCond %{HTTP_HOST} ^(www\.)?my\-web\.agency$
  RewriteRule ^my-web.agency/ - [L,R=404]
  RewriteRule !^my-web.agency/ my-web.agency/%{REQUEST_URI} [NC,QSA]
</IfModule>

Eu só estava trabalhando nisso há tanto tempo, alterando as regras e estruturando que aquele mangle é o que eu tenho atualmente.

O www. PERMANECE, de modo que pouco para removê-lo é totalmente ineficaz.

O! ^ my-web.agency / rule realmente serve efetivamente o site. NO ENTANTO, minha tentativa a seguir de renderizar um 404 se o subdiretório estiver incluído no URI FAILS.

Por favor, explique-me como resolver tudo isso. Eu estou tentando ler os documentos e aprender e descobrir, mas de alguma forma eu não posso e já coloquei bastante tempo nisso, eu realmente preciso parar, por favor me ajude, eu serei sempre grato a aprenda e tome nota cuidadosa. Muito obrigado.

***** ATUALIZAÇÃO: ** Agora eu tenho

# remove www, externally for consistent domains (successful)
RewriteCond %{HTTP_HOST} ^www\.(.+)$
RewriteRule .* http://[[percent]]1/$0 [NS,L,R=301,QSA]

RewriteCond %{HTTP_HOST} ^(www\.)?my\-web\.agency$
RewriteCond %{REQUEST_URI} ^my-web.agency
RewriteRule ^(.*)$ - [R=404,L,NC]

RewriteCond %{HTTP_HOST} ^(www\.)?my\-web\.agency$
RewriteCond %{REQUEST_URI} !^my-web.agency
RewriteRule ^(.*)$ /my-web.agency/$1 [L,NC,QSA]

Isso faz efetivamente o www. desaparecer se tentado. Mas todos os LINKS INTERNOS AINDA INCLUEM o subdiretório que deve estar oculto (por exemplo, links internos lidos " link "), e acessar páginas com o subdiretório no URI ainda funciona; Eu preferiria que retornasse um 404.

DocumentRoot ou RewriteBase parecem ser possíveis soluções lógicas, se eu pudesse descobrir a implementação correta. (O [[percent]] procedendo http: // no primeiro RewriteRule é permitir o uso do editor sem gerar erro; simplesmente indica % .)

    
por user163831 09.04.2018 / 08:06

0 respostas