файлы внутри корневого каталога недоступны mod_rewrite PHP - PullRequest
0 голосов
/ 02 января 2012

Структура файла выглядит следующим образом

  • корень
  • корень / х
  • корень / х / y.php
  • корень / index.php

.htaccess код

RewriteRule (.*) /x/$1 [L]

Что делает файл htaccess, так это удаляет имя папки (x) из URL, получая доступ к y.php = http://localhost/y.php вместо http://localhost/x/y.php. Это работает, но моя проблема сейчас в том, что index.php показывает что-то вроде этого:

Index of /x

Parent Directory
y.php

Я не могу получить доступ к index.php. Я считаю, что X стал корневой папкой. Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 02 января 2012

Во-первых, вы не должны разрешать такие показы индекса на общедоступном сервере ... на вашем локальном хосте все может быть в порядке, но все же вы можете отключить его в своем .htaccess, добавив:

Options -Indexes

Чтобы ответить на ваш вопрос, вам, вероятно, следует добавить следующие условия перед правилом перезаписи, чтобы правило не применялось ни к каким файлам или каталогам, которые действительно существуют на диске:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

Это не решит проблему, которую вы имеете, потому что .htaccess перенаправляет в несуществующий файл / x / index.php ... именно поэтому он показывает список индексов для / x каталог

...