Jump to content

Question

Boa tarde pessoal.

 

Antes de postar essa dúvida, gostaria de informa que procurei bastante no Google e não encontrei uma forma para resolver meu problema.

 

Gostaria de pedir o auxilio dos colegas que entendem de expressões regulares e .htaccess para criar regras de reescritas de urls.

 

Bom, deixa eu explicar o que desejo fazer:

 

Supondo que tenho um domínio:

www.meudominio.com.br

E a pasta:

admin/

E dentro da pasta admin tenho vários arquivos php. Exe:

admin/index.php

admin/login.php

admin/registro.php

admin/page-1.php

admin/page-2.php

Para acessa-los naturalmente seria:

www.meudominio.com.br/admin/index.php

www.meudominio.com.br/admin/login.php

e etc.

 

Até aqui tudo normal!

 

Agora o que eu quero fazer é o seguinte. Acessar todos os arquivos dentro da pasta admin através dos seguintes urls:

www.meudominio.com.br/subpasta-A/admin/index.php

www.meudominio.com.br/subpasta-B/admin/index.php

www.meudominio.com.br/subpasta-C/admin/index.php

 

Onde

www.meudominio.com.br/subpasta-A/admin/ == www.meudominio.com.br/admin/

www.meudominio.com.br/subpasta-B/admin/ == www.meudominio.com.br/admin/

www.meudominio.com.br/subpasta-C/admin/ == www.meudominio.com.br/admin/

 

www.meudominio.com.br/subpasta-A/admin/login.php == www.meudominio.com.br/admin/login.php

www.meudominio.com.br/subpasta-B/admin/login.php == www.meudominio.com.br/admin/login.php

www.meudominio.com.br/subpasta-C/admin/login.php == www.meudominio.com.br/admin/login.php

 

Ou seja, desejo acessar todos os scripts dentro da pasta admin, através de urls personalizados e ainda barrar os acessos dos scripts para a pasta onde eles estão de fato.

 

 

Resumindo o que eu preciso seria:

 

1-) Bloquear acesso direto a pasta admin com uma regra para:

  • Se acessar www.meudominio.com.br/admin/QUALQUER-SCRIPT ser direcionado para www.meudominio.com.br/index.php

 

2-) Acessar os respectivos conteúdos de admin através dos urls:

  • www.meudominio.com.br/subpasta-A/admin/QUALQUER-SCRIPT 
  • www.meudominio.com.br/subpasta-B/admin/QUALQUER-SCRIPT
  • www.meudominio.com.br/subpasta-C/admin/QUALQUER-SCRIPT

 

O que eu consegui realizar foi um redirect de /subpasta-A/admin/ para /admin/. Porem o que preciso é ler os arquivos dentro de admin através de subpastas conforme especificado acima.

 

IMPORTANTE: As pastas (subpasta-A ou subpasta-B ou etc) acessadas pelo navegador não existiram de fato no servidor.

 

OBS: Talvez alguém possa se perguntar o porque eu desejo acessar os mesmos arquivos de urls distintos.

A resposta é: Porque desejo através de parte da url (subpasta-A ou subpasta-B ou etc) modificar parâmetros de configuração nos scripts. Assim não precisaria ter scripts repetidos em todas essas pastas que desejar criar na reescrita.
 

Desde já agradeço a atenção de todos.

 

 

 

 

 

 

 

Share this post


Link to post
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By JoãoRicardo.Lima
      Olá pessoal.
      Pessoal como eu faço o roteamento dos meus arquivos no meu projeto, pois sempre que inicio o meu servidor embutido do php em um diretório especifico, ele obviamente não "enxerga" as outras pastas, por exemplo. Eu tenho minha pasta com as views, mas qualquer link que eu coloco em uma view para ser redirecionado para ou view, o servidor não consegue achar o caminho, pois ele não conhece as outras pasta. Como eu faria este roteamento?.
    • By Nightmare SEP
      Bom dia,
      Eu tenho configurado em um servidor no meu trabalho, um sistema da intranet (PHP e MySQL), onde já está tudo configurado.
      Esses tempos tivemos um problema no servidor, eu precisei reinstalar o XAMPP e para ficar tudo configurado eu copiei toda a pasta do XAMPP que eu tinha backup e colei por cima. Tudo funcionou corretamente mas agora eu preciso migrar para um novo servidor, e gostaria de fazer algumas alterações.
       
      1 - Como eu configuro um nome (host) para acessar a intranet. Por exemplo, estou acessando de um computador dentro da minha rede, e quero ir no navegador e digitar: http://intranet. Sem ter a necessidade de digitar o IP do servidor.
      2 - Qual arquivo devo editar para criar/alterar o usuário e senha de conexão com o banco de dados?
      3 - Quando eu fiz essa cópia das pastas, o serviço do apache no windows veio como padrão a mesma unidade de disco que estava antes (no caso a unidade E:), mas eu gostaria de mudar também esse caminho. Tem um arquivo que eu consiga editar esse caminho do serviço?
       
      Valeu!
    • By wekend
      Sempre que tento iniciar o httpd no CentOS 7 no meu Google VPS, a seguinte mensagem sempre aparece. pode me ajudar?
      ● httpd.service - The Apache HTTP Server
      Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
      Active: failed (Result: exit-code) since Sun 2019-09-08 13:12:27 UTC; 1min 21s ago
      Docs: man:httpd(8)
      man:apachectl(8)
      Process: 2019 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=1/FAILURE)
      Process: 2018 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
      Main PID: 2018 (code=exited, status=1/FAILURE)
      Sep 08 13:12:27 centos-web systemd[1]: Starting The Apache HTTP Server…
      Sep 08 13:12:27 centos-web httpd[2018]: (98)Address already in use: AH00072: make_sock: could not bind to address [::]:443
      Sep 08 13:12:27 centos-web systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
      Sep 08 13:12:27 centos-web kill[2019]: kill: cannot find process ""
      Sep 08 13:12:27 centos-web systemd[1]: httpd.service: control process exited, code=exited status=1
      Sep 08 13:12:27 centos-web systemd[1]: Failed to start The Apache HTTP Server.
      Sep 08 13:12:27 centos-web systemd[1]: Unit httpd.service entered failed state.
      Sep 08 13:12:27 centos-web systemd[1]: httpd.service failed.
    • By Carcleo
      Fiz o download do Apache Haus 64 bits nesse link: https://www.apachehaus.com/cgi-bin/download.plx#APACHE24VC15
       
      No httpd.conf alterei o diretório do htdocs para o disco C:
      Habilitei a diretiva LoadModule vhost_alias_module modules/mod_vhost_alias.so para usar Virtuais Hosts
      Habilitei a diretiva Include conf/extra/httpd-vhosts.conf também para usar Virtuais Hosts
      No extras/httpd-ahssl.conf, configurei os VirtuaisHosts no final do arquivo da seguinte forma:
      <VirtualHost _default_:443>   SSLEngine on   ServerName localhost:443   SSLCertificateFile "D:/Trabalhos/host/htdocs/fielcard.net.br/ssl/server.crt"   SSLCertificateKeyFile "D:/Trabalhos/host/htdocs/fielcard.net.br/ssl/server.key"   DocumentRoot "D:/Trabalhos/host/htdocs/fielcard.net.br" # DocumentRoot "${SRVROOT}/htdocs" # DocumentRoot access handled globally in httpd.conf     CustomLog "${SRVROOT}/logs/ssl_request.log" \           "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"     <Directory "${SRVROOT}/htdocs">         Options Indexes Includes FollowSymLinks         AllowOverride AuthConfig Limit FileInfo     Require all granted     </Directory> </virtualhost> <VirtualHost *:443>   SSLEngine on   ServerName serverone.tld:443   SSLCertificateFile "D:/Trabalhos/host/htdocs/fielcard.net.br/ssl/serverone.crt"   SSLCertificateKeyFile "D:/Trabalhos/host/htdocs/fielcard.net.br/ssl/serverone.key"   DocumentRoot "D:/Trabalhos/host/htdocs/fielcard.net.br"     CustomLog "${SRVROOT}/logs/ssl_request.log" \           "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"     <Directory "${SRVROOT}/htdocs">         Options Indexes Includes FollowSymLinks         AllowOverride AuthConfig Limit FileInfo     Require all granted     </Directory> </virtualhost> <VirtualHost *:443>   SSLEngine on   ServerName servertwo.tld:443   SSLCertificateFile "D:/Trabalhos/host/htdocs/fielcard.net.br/ssl/servertwo.crt"   SSLCertificateKeyFile "D:/Trabalhos/host/htdocs/fielcard.net.br/ssl/servertwo.key"   DocumentRoot "D:/Trabalhos/host/htdocs/fielcard.net.br"     CustomLog "${SRVROOT}/logs/ssl_request.log" \           "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"     <Directory "${SRVROOT}/htdocs">         Options Indexes Includes FollowSymLinks         AllowOverride AuthConfig Limit FileInfo     Require all granted     </Directory> </virtualhost>  <VirtualHost _default_:443>   SSLEngine on   ServerName localhost:443   SSLCertificateFile "D:/Trabalhos/host/htdocs/mvc_crud_pdo/ssl/server.crt"   SSLCertificateKeyFile "D:/Trabalhos/host/htdocs/mvc_crud_pdo/ssl/server.key"   DocumentRoot "D:/Trabalhos/host/htdocs/mvc_crud_pdo"     CustomLog "${SRVROOT}/logs/ssl_request.log" \           "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"     <Directory "${SRVROOT}/htdocs">         Options Indexes Includes FollowSymLinks         AllowOverride AuthConfig Limit FileInfo     Require all granted     </Directory> </virtualhost> <VirtualHost *:443>   SSLEngine on   ServerName serverone.tld:443   SSLCertificateFile "D:/Trabalhos/host/htdocs/mvc_crud_pdo/ssl/serverone.crt"   SSLCertificateKeyFile "D:/Trabalhos/host/htdocs/mvc_crud_pdo/ssl/serverone.key"   DocumentRoot "D:/Trabalhos/host/htdocs/mvc_crud_pdo"     CustomLog "${SRVROOT}/logs/ssl_request.log" \           "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"     <Directory "${SRVROOT}/htdocs">         Options Indexes Includes FollowSymLinks         AllowOverride AuthConfig Limit FileInfo     Require all granted     </Directory> </virtualhost> <VirtualHost *:444>   SSLEngine on   ServerName servertwo.tld:443   SSLCertificateFile "D:/Trabalhos/host/htdocs/mvc_crud_pdo/ssl/servertwo.crt"   SSLCertificateKeyFile "D:/Trabalhos/host/htdocs/mvc_crud_pdo/ssl/servertwo.key"   DocumentRoot "D:/Trabalhos/host/htdocs/mvc_crud_pdo"     CustomLog "${SRVROOT}/logs/ssl_request.log" \           "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"     <Directory "${SRVROOT}/htdocs">         Options Indexes Includes FollowSymLinks         AllowOverride AuthConfig Limit FileInfo     Require all granted     </Directory> </virtualhost>   
      Os Problemas:
      A ) http://localhost/site parou de funcionar, ou seja, quando o link começa com localhost
      B ) Apenas o primeiro site cadastrado (fielcard.net.br) no http-ahssl.conf está abrindo, o outro (mvc_crud_pdo) está abrindo o fielcard.net.br
       
      Onde estou errando?
       
      O objetivo é configurar Hosts Virtuais
       
    • By Carcleo
      A ideia:
       
      toda e entrada no site, seja com link direto do tipo:
       
      www.site.com.br/pasta1/pasta2/arquivo.php  
      ou normal url amigável
       
      www.site.com.br/categoria/tipo  
      tudo queria que redirecionasse para o index.php da raiz do site.
       
      E que, caso o arquivo ou pasta NÃO existisse, abrisse normalmente a pagina 404.php
       
       
      Tentei de tres formas mas nenhuma dá certo.
       
      Primeira forma
      RewriteEngine On ErrorDocument 400 http://www.sortecard.com.br/index.php ErrorDocument 401 http://www.sortecard.com.br/401.php ErrorDocument 403 http://www.sortecard.com.br/403.php ErrorDocument 404 http://www.sortecard.com.br/404.php ErrorDocument 500 http://www.sortecard.com.br/500.php php_value allow_url_fopen on php_value allow_url_include on php_flag mail_filter 0 RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteCond %{HTTPS} off RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] RewriteCond %{SCRIPT_FILENAME} !-f RewriteCond %{SCRIPT_FILENAME} !-d RewriteRule ^(.*)$ index.php?page=$1 Segunda forma:
      Options +FollowSymLinks DirectorySlash On RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f [OR] RewriteCond %{REQUEST_FILENAME} \.php$ RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?request=$1 [L] Terceira forma:
      RewriteEngine On ErrorDocument 400 http://www.sortecard.com.br/index.php ErrorDocument 401 http://www.sortecard.com.br/401.php ErrorDocument 403 http://www.sortecard.com.br/403.php ErrorDocument 404 http://www.sortecard.com.br/404.php ErrorDocument 500 http://www.sortecard.com.br/500.php php_value allow_url_fopen on php_value allow_url_include on php_flag mail_filter 0 RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteCond %{HTTPS} off RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] RewriteRule ^(.*)$ index.php?page=$1 Problemas:
       
      A) Quando acesso a url diretamente não está redirecionando para o index.
      B) Quando falo que é para redirecionar todos os arquivos ele não me dá os parêmetros. 
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.