2014-10-20 2 views
1

На самом деле у меня проблема с моим файлом .htaccess. Это содержание моего .htaccess файла:.htaccess запретить все файлы, кроме одного файла, который имеет правило перезаписи

RewriteEngine on 
RewriteRule ^put$ put.php 

Order Allow,Deny 
<FilesMatch "^put\.php$"> 
Allow from all 
</FilesMatch> 

В папке, где лежит этот файл также файл put.php. Я хочу отказать всему в этой папке, кроме put.php, этот файл должен быть доступен по адресу domain.com/folder/put. Но что он на самом деле делает, это то, что все отрицается, также put, но put.php работает. Как я могу это исправить?

Заранее благодарен!

ответ

1

Попробуйте использовать только mod_rewrite. Может быть, файлmatch отказывается от запроса /put, поэтому mod_rewrite не может его переписать.

Try:

RewriteEngine on 
RewriteRule ^put$ put.php [L] 
RewriteRule !^put(\.php)?$ - [L,F] 

RewriteCond %{THE_REQUEST} /put\.php 
RewriteRule ^put\.php$ - [L,F] 
+0

Да, вы правы, '' put' и put.php' работают правильно. Но что я могу сделать, чтобы заставить 'put' работать и' put.php' НЕ работать. Также кажется, что все другие файлы недоступны, что хорошо! Спасибо, пока. :) – Criska

+0

@Criska смотри править –

+0

Работает отлично. Спасибо! – Criska