Записать файл .htaccess без% {REQUEST_FILENAME} - PullRequest
1 голос
/ 03 августа 2011

Так что у меня есть нелепая проблема, которую хостинговая компания не может решить сама.У меня есть веб-сайт на сервере Windows, на котором запущен ISAPI Rewrite 3, чтобы я мог использовать файлы .htaccess для WordPress.Но я заметил, что операторы

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

не работают.Они просто игнорируются.Это проблема конфигурации?В то же время у меня есть сайт, работающий с этой умной строкой, которую я украл откуда-то

RewriteCond %{REQUEST_URI} (/[^.]*|\.(html?|php))$  [NC]

Проблема в том, что при использовании этой строки я не могу получить доступ к реальному каталогу, который существует.Ex./ wp-admin /, поэтому, если я хочу внести изменения в административную область, я должен включить эту линию, которая ограничивает по IP, вносит изменения, а затем отключить эту строку.Совершенно нелепо.

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} (/[^.]*|\.(html?|php))$  [NC]
#disallow or allow just my IP address
#RewriteCond %{REMOTE_HOST} !1.2.3.4
RewriteRule .* /index.php [L]

Любые решения, чтобы я мог получить доступ к каталогам, которые существуют без использования% {REQUEST_FILENAME}?

1 Ответ

0 голосов
/ 04 августа 2011

Хорошо .. У меня Helicon ISAPI_Rewrite v3 работает на IIS 6 (и имел его на IIS 7 2 года назад) .. и эти инструкции на самом деле работают нормально :

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

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

RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
...