2015-10-15 3 views
1

У меня есть последующие PHP файлы:.htaccess Несколько каталогов загружать ту же страницу

www/ 
    -prueba.php 
    -prueba-verificador.php 
    -contenido.php 

и файл .htaccess последующие:

ErrorDocument 404 /quimica/404.php 
Options +FollowSymLinks 
Options +Indexes 
RewriteEngine On 
RewriteBase/
RewriteRule ^([0-9A-Za-z]*)/$ $1.php 
RewriteRule ^([0-9A-Za-z]*)/([0-9A-Za-z]*)/$ $1-$2.php 
RewriteRule ^([0-9A-Za-z]*)/([0-9A-Za-z]*)/([0-9A-Za-z]*)/$ $1-$2.php/$3 

когда доступ к site.com/prueba/ или site.com/contenido/ работает нормально, загружает prueba.php и contenido.php, но когда я получаю доступ к site.com/prueba/verificador/ load prueba.php вместо prue ba-verificador.php

Как я могу это исправить?

+0

Ну, сначала вам не нужно делать '[0-9A-Za-z] *', когда вы можете просто сделать '\ w *'. – DataHerder

ответ

1

Добавить это отключить MultiViews:

Options -MultiViews 

Apache docs on mod_negotiation, описывает то, что делает MultiViews вариант, когда включен:

Если сервер получает запрос/какой/дир/обув и/some/dir/foo не существует , тогда сервер читает каталог, ищущий все файлы с именем foo. *, и эффективно подделывает карту типа, которая называет все эти файлы , назначая их те же типы носителей и кодировки содержимого, которые он имел бы, если бы клиент попросил одного из них по имени. Затем он выбирает наилучшее соответствие требованиям клиента и возвращает этот документ .

+1

спасибо! отлично работает! : D –