2013-06-19 4 views
0

У меня есть один сайт, который зашифрован, и я не могу сделать этот внутренний код. Поэтому я знаю, что мы можем перенаправить или сбросить ошибку 404 через mod_rewrite.htaccess ограничить доступ для сообщений к определенному URL-адресу

Кроме того, мой URL в кириллице так и в Chrome выглядит

www.example.com/Нешто_два 

но когда я копировать/вставить это выглядит как

www.example.com/%D0%9F%D0%BE%D0%B1%D0%B0%D1%80%D0%B0%D1%98%D1%82%D0%B5_%D0%A2%D0%B5%D1%81%D1%82_%D0%92%D0%BE%D0%B7%D0%B5%D1%9A%D0%B5 

я пытался использовать mod_rewrite, чтобы отключить запрос пост по этому адресу , но все же этот url принимает почтовые запросы. Протестировано с помощью инструмента http.

<IfModule mod_rewrite.c> 

    RewriteEngine On 
    RewriteBase/




    RewriteCond %{REQUEST_URI} !^.*/tiny_mce/.*$ 
    RewriteCond %{REQUEST_URI} \.(php|html?)$ [OR] 
    RewriteCond %{REQUEST_FILENAME} !-f 

    RewriteRule ^([^.]*)\.?(.*)$ index.php?q_url=$1 [QSA] 

     RewriteCond %{REQUEST_METHOD} POST 
     RewriteCond %{REQUEST_URI} ^Нешто_два$ 
     RewriteRule^- [L,R=404] 
</IfModule> 

ответ

1

Файл .htaccess должен иметь URL-адрес в экранированной форме, поэтому вместо «Нешто_два» вы должны поместить версию, которая появляется с экранированным «% D0% 9F% D0% BE% D0% B1% D0% B0 % D1% 80% D0% B0% D1% 98% D1% 82% D0% B5_% D0% A2% D0% B5% D1% 81% D1% 82_% D0% 92% D0% BE% D0% B7% D0 % B5% D1% 9A% D0% B5 "

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

"\ xD09D \ xD0B5 \ xD188 \ xD182 \ xD0BE_ \ xD0B4 \ xD0B2 \ xD0B0"

Экранированный версии могут быть помещены в RewriteCond:

RewriteCond %{REQUEST_URI} ^%D0%9F%D0%BE%D0%B1%D0%B0%D1%80%D0%B0%D1%98%D1%82%D0%B5_%D0%A2%D0%B5%D1%81%D1%82_%D0%92%D0%BE%D0%B7%D0%B5%D1%9A%D0%B5$ 
0

Чтобы ограничить HTTP POST, вам нужно использовать «Limit или LimitExcept директивы внутри VirtualHost или блока каталога (если вы не поставите внутри одного из них, он не будет работать!). Например, следующее позволит только HTTP GET на этом сайте под

<Directory> 
........ 
<LimitExcept GET> 
    Require valid-user 
</LimitExcept> 

Если вы используете файл .htaccess, просто вставить эту часть без блока Direcotry

<LimitExcept GET> 
    Require valid-user 
</LimitExcept> 
Смежные вопросы