2015-02-13 2 views
0

Я использую .htaccess для перенаправления кучи URI, чтобы удалить конечный слэши и служит домашней странице конкретного сайта я работаю, используя следующие правила:Отключить DirectorySlash для одной папки в .htaccess

RewriteEngine ON 

# for homepage section URIs, redirect to remove trailing slash 
RedirectMatch 301 ^(/?)(hero|night|entertainment|ticket-info|sponsors|charities|work|committee)/$ $1$2 

# serve homepage 
RewriteRule ^/?(hero|night|entertainment|ticket-info|sponsors|charities|work|committee)$ index.html [L] 

Однако, есть также папка под названием ticket-info, и я хочу, чтобы иметь возможность обслуживать файлы оттуда, например /ticket-info/img.jpg/или билет-инфо/купить/

Apache автоматически при добавлении в отстающей косой чертой и попыткой обслуживать индекс каталога. Я хочу отключить это поведение только для/ticket-info и/ticket-info/routes (но поддерживаю поведение по умолчанию для любых других файлов в этом каталоге и для остальной части сайта). Я попытался сделать это, добавив следующее правило, но он возвращает внутреннюю ошибку сервера.

# don't add slash even if directory exists 
<Location /ticket-info/> 
    DirectorySlash Off 
    SetHandler some-handler 
</Location> 

Каких правил нужно добавить, чтобы отключить добавление косых черт только для этого маршрута, но сохранить поведение по умолчанию везде?

+0

не будет, но Я не хочу, чтобы какое-либо решение помешало мне обслуживать такие файлы. –

+0

ticket-info - это не каталог? Если это не так, то mod_dir не тот, который добавляет конечную косую черту –

+0

@JonLin - это каталог - вот в чем проблема: «есть также папка с именем ticket-info, и я хочу иметь возможность подавать файлы оттуда» –

ответ

0

Если /ticket-info является каталогом, создайте файл Htaccess там с этим в ней:

DirectorySlash off 
SetHandler some-handler 

Вы не можете использовать <Location> контейнер в файл Htaccess: http://httpd.apache.org/docs/2.2/mod/core.html#location

+0

это работает для проблемы с перенаправлением, однако, если я создаю подкаталог в/ticket-info/eg/ticket-info/new, то перенаправит ction не возникает –

+0

Я попытался создать .htaccess в/new и снова включить DirectorySlash. Это, похоже, сработало, но оно не приведет пользователя к указателю каталога. –

+0

Затем я попытался добавить 'DirectoryIndex index.php index.html' в этот файл .htaccess, но это все еще не сработало. –