Хорошо, эта проблема возникла недавно, и я не знаю, почему это происходит;на самом деле это две проблемы в одном ...
0.Мой файл .htaccess, для справки.(Отредактировано)
Options -Indexes +FollowSymLinks
RewriteEngine On
RewriteBase /
ErrorDocument 400 /index.php?400
ErrorDocument 401 /index.php?401
ErrorDocument 403 /index.php?403
ErrorDocument 404 /index.php?404
ErrorDocument 410 /index.php?410
ErrorDocument 414 /index.php?414
ErrorDocument 500 /global/500.php
RewriteCond %{HTTP_HOST} !^$ [NC]
RewriteRule .* index.php [L]
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https?://(.*\.)?(animuson)\.(biz|com|info|me|net|org|us|ws)/.*$ [NC]
RewriteRule ^.*$ - [F]
1.Моя папка с картинками идет по жесткому пути вместо перенаправления.
Я понятия не имею, ПОЧЕМУ это делает.Это действительно беспокоит меня.Папка 'pictures' - это символическая ссылка на другое место, так что я могу легко загружать файлы в эту папку без необходимости поиска по папкам и так далее через мою учетную запись FTP, но это единственное, для чего я его использую.Однако, когда я захожу на http://example.com/pictures, мой htaccess видит его как доступ к другой папке, которая ограничена, и выдает ошибку 403, а не перенаправляет на index.php и отображает страницу как обычно.
Я подумал, что это как-то связано с тем, что эта конкретная папка является символической ссылкой, что приводит к странным действиям, но я решил, что мои правила вообще не применяются к папкам.Если я захожу в такие папки, как «css» и «com», которые являются папками в корневом веб-каталоге, то отображается страница с ошибкой 404 и добавляется символ «/» в конец URL-адреса, поскольку он обрабатывается как каталог.Это также делает ту же ошибку 403 для моего каталога 'images', который настроен таким же образом.
Итак, вопрос здесь в том, как мне изменить мой RewriteRule, чтобы он применялся и к каталогам?Я хочу, чтобы все данные, доступные через Интернет, были перенаправлены обратно на index.php при сохранении полного пути доступа в адресной строке. Почему это не работает?(Я почти уверен, что раньше он работал нормально.)
Вот небольшая диаграмма, показывающая пути, по которым они следуют ...
example.com/pictures -> pictures/ -> /home/animuson/animuson-pictures -> 403
example.com/com -> com/ -> 404
example.com/test -> index.php
example.com/ -> index.php
example.com/images -> images/ -> /home/animuson/animuson-images -> 403
example.com/css -> css/ -> 404
РЕДАКТИРОВАТЬ: Следующая информациядобавлено.
Apache сначала обрабатывает структуру каталога.Он определяет, существует ли путь на основе того, что было введено в адресную строку.Если кто-то введет имя папки, которая, как оказалось, существует, он перенаправит пользователя на путь с символом «/» в конце URL-адреса, означающего, что это каталог.Для каталога «картинки», описанного выше, пользователь не имеет разрешения на доступ к этой папке, поэтому он перенаправляет их на страницу 403 «Отказано в доступе», а не просто показывает страницу, которая предполагается для отображения там черезRewriteRule выше.Мой самый большой вопрос: почему Apache обрабатывает каталог сначала и , как мне заставить его перестать делать это ?Мне бы очень хотелось получить ответ на этот вопрос.
2.Почему мое сжатие не работает?(РЕДАКТИРОВАТЬ: Эта часть исправлена.)
При анализе моего сайта с помощью веб-оптимизатора постоянно повторяется, что на моей странице не используется веб-сжатие, но я почти на 100% уверен, что до этого он работал нормальнопод теми же настройками.Кто-нибудь может предложить какие-либо причины, по которым он может не работать с этим набором, или предложить лучший способ сделать это?