Рейтинг:2

Неверный URL-адрес Apache переписывается для несуществующих файлов символических ссылок

флаг ar

У меня есть каталог (foo/загрузки), который содержит 1 файл: файл1.txt

Я создал символическую ссылку на этот каталог (бар/загрузки)

Вот мой .htaccess файл внутри бар:

RewriteEngine включен
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
Правило перезаписи ^ index.php [L]

А это мой файл vhost:

<VirtualHost *:80>
    ServerName bar.com
    DocumentRoot /var/www/bar

    <Directory /var/www/bar>
        allow from all
        order allow,deny
        AllowOverride All
    </Directory>
</VirtualHost>

Проблема, с которой я сталкиваюсь, заключается в том, что если я пытаюсь получить доступ к несуществующему файлу при использовании папки с символической ссылкой, он не дает ответа 404. Вот что я имею в виду:

  1. foo.com/uploads/file1.txt -> файл обслуживается (ПРАВИЛЬНО)
  2. foo.com/uploads/file2.txt -> Апач 404 ErrorDocument обслуживается (ПРАВИЛЬНО)
  3. bar.com/uploads/file1.txt -> файл обслуживается (ПРАВИЛЬНО)
  4. bar.com/uploads/file2.txt -> переходит к index.php (НЕПРАВИЛЬНО)

Я также пробовал в том числе:

RewriteCond %{REQUEST_FILENAME} !-l

Перед Правило перезаписи, но это не имеет значения.

Кто-нибудь знает, что мне нужно сделать?

Рейтинг:1
флаг kz

Если вы хотите, чтобы фронт-контроллер применялся только при доступе через bar.com тогда вы можете проверить запрошенный Хозяин заголовок в правиле. Например:

RewriteCond %{HTTP_HOST} (^|\.)bar\.com [NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
Правило перезаписи ^ index.php [L]

Или исключить /загрузки подкаталог:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !^uploads/ index.php [L]

Или включить другое .htaccess файл в /загрузки подкаталог, который переопределяет шаблон родительского фронт-контроллера. Вы можете сделать это, просто отключив (или возможность - предоставление наследования mod_rewrite не включено) механизм перезаписи в подкаталоге:

# /загрузки/.htaccess
RewriteEngine Off

Как вариант, отключить .htaccess полностью переопределяет и перемещает эти директивы в <Directory /var/www/bar> контейнер внутри bar.com vHost.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.