Es posible incluir reglas de otro archivo htaccess en .htaccess ?

.htaccess

RewriteEngine On
RewriteCond ...
RewriteRule ...

Include .htaccess1
.
.
Include .htaccess2

Haciendo esto le da un 500. Incluyen no se permite aquí
Es allí una manera de hacer esto ? Porque tengo esta bastante mal.

  • Sólo habrá 1 .htacess para la ubicación de una carpeta
  • Sí, eso lo entiendo. Pero, ¿podemos incluir externamente como la forma en que se hace en apache2.conf ? .htaccess decir Incluir htaccessfiles/
InformationsquelleAutor EPQRS | 2012-11-30

4 Comentarios

  1. 49

    Usted no puede incluir reglas, declaraciones, definiciones, o de las directivas de otros archivos desde un archivo htaccess. El Include directiva no puede ser utilizado dentro de un archivo htaccess. Parte del punto de un archivo htaccess es actuar de manera similar a un <Directory> de bloque, pero ser independiente y no tener acceso a las cosas fuera de el mismo directorio (subdirectorios están bien), pero más específicamente nada fuera de la raíz del documento. De esta manera, a alguien haciendo cosas maliciosas no ser capaz de señalar las solicitudes o incluir archivos/contenido de otros directorios por cortar el archivo htaccess.

    En el ámbito de mod_rewrite en concreto, hay opciones para la RewriteOptions que permiten heredando las reglas de reescritura de la htaccess del directorio padre, pero nada que arbitrariamente se incluyen normas desde cualquier lugar.

  2. 3

    Sé que esto puede ser un poco tarde, pero en su lugar si usted está tratando de implementar un baneo por IP, o de tipo similar a la dinámica de la regla de los contenidos, el uso de la última regla en su .archivo htaccess para punto de la solicitud en una sola .php o similar lenguas script que realiza esta función (su única secuencia de comandos puede cargar la dinámica de las reglas en su propio formato y hacer la misma decisión como Apache habría dependiendo de cuál es su realidad tratando de lograr), a continuación, pasa la solicitud a la real de la página que se solicita. Se añade una capa a todo el proceso de solicitud, pero le da la misma función dinámica para todas las páginas, sin la necesidad de generar reglas directas para el servidor y el intento de tener Apache tomar las decisiones por usted.

    Solo que pensé que me gustaría añadir a este pensamiento por cualquier otro de los que puede tropezar a través de este post buscando algo similar.

    • Me gustaría ver un ejemplo de cómo hacer esto, si alguien puede proporcionar.
    • un simple router ? github.com/moagrius/RegexRouter
    • Me siento como me has traído tan cerca de la solución que busco, pero todavía estoy en la oscuridad. Mi objetivo es importar una lista de IPs prohibidas y, a continuación, carga de WordPress index.php
    • solo tienes que buscar htaccess prohibición de ips si usted está usando un archivo htaccess con apache. Si usted está usando nginx, también se puede hacer allí. Si quieres hacerlo mediante programación, bien, esa es tu propia pregunta por el desbordamiento de pila
    • Sí, yo ya tengo IPs está prohibido en la htaccess pero la actualización de ellos de más de 50 sitios es un dolor. Necesito un @import: site.com/banlist.txt básicamente.
  3. 3

    Es posible – en 2-3 pasos…

    1. Crear su archivo de direcciones ip a Negar. Podría ser una .archivo php, .archivo txt, incluso .archivo csv.

    2. Crear una .php (o el idioma de su elección) de secuencia de comandos, cuya finalidad es la salida de un archivo llamado «.htaccess».

    3. Cada vez que actualice su archivo de direcciones ip a Negar, ejecute el dijo: 2) .script php, y la salida de una nueva .htaccess, para cada uno de sus Dominios.

    Si usted tiene instrucciones además de las IPs a Negar, duro de código en su .script php para la salida de la primera. Ver https://www.askapache.com/htaccess/

    El .script php podría genéricamente aspecto:

    $output = "statement1".PHP_EOL;
    $output .= "statement2".PHP_EOL;
    $output .= "statement3".PHP_EOL;
    ...
    

    Luego, cuando estés listo para NEGAR la porción:

    $denyList = file_get_contents("the/list/of/IPs.txt"); //or .php etc.
    $ArrayDenyList = explode(PHP_EOL,$denyList); //or your line ending character, if necessary
    foreach($ArrayDenyList as $key =>$value) {
    $output .= 'Deny from '.$value.PHP_EOL;
      }
    

    A continuación, escribir el archivo: (usted probablemente tiene una forma estándar):

    $handle = fopen(.htaccess,"w"); //complete path if in another domain
    fwrite($handle,$output);
    fclose($handle);
    echo "Success - <p>";
    

    Si usted tiene más de un Dominio, entonces se tiene una Matriz de los nombre de Dominio de la ruta, y foreach de la Matriz, y fwrite para cada ruta.

    Si algunos Dominios que ya tienen .htaccess requisitos, puesto que en una lectura .archivo txt… hacer un file_get_contents(en que), «salida =», añade el «Negar, entonces «de salida .= …» cada uno en un «foreach()» bucle.

    De todos modos… has hecho todas estas cosas antes… sólo hay que aplicar cada técnica para este escenario.

    Una .htaccess no puede «include()» otros archivos, pero una .script de php que puede, y .scripts de php que puede dar salida a los archivos con nombre «.htaccess», que puede ser construida por el guión.

    El método anterior funciona, y empecé a hacerlo cuando yo lo necesitaba para crear filas de «RewriteRule» para cada uno de mis catálogo de productos! Cada vez que agregue un nuevo producto, puedo ejecutar mi script que genera un fresco .htaccess… construido a partir de mi SQL de la tabla de productos. Similar a mi .script php que «fwrite»s mi sitemap.xml.

    (Espero que no .php signos de puntuación o «$»s se han perdido en esto de escribir.)

    • por ejemplo, quiero usar htaccess en http://www.domain2.com de http://www.domain2.com. Por favor, escriba el código para esto claramente. Y el archivo que contiene el código? Y Donde puedo poner este archivo. por favor, ayudar.
  4. -2

    Puede crear script del lado servidor como PHP «.htaccess.php» y dentro de poner su incluye. Por supuesto, usted debe configurar apache:
    AccessFileName .htaccess.php

Dejar respuesta

Please enter your comment!
Please enter your name here