jkm

Рейтинг
120
Регистрация
20.02.2014

Опишите подробнее. Вместо site1 может быть что угодно?

/test/?zuzu1234567

/test/zuzullllllll

/test/test2/zuzullllllll

http://site.ru/site1/?zuzu1234567

В RewriteRule попадает только site1/ т.е все до знака вопроса

GET переменные попадают в %{QUERY_STRING}


RewriteCond %{QUERY_STRING} zuzu [OR]
RewriteCond %{REQUEST_URI} zuzu
RewriteRule ^site1/ - [F,L]

или так


RewriteCond %{REQUEST_URI}?%{QUERY_STRING} zuzu
RewriteRule ^site1/ - [F,L]

В THE_REQUEST полная строка зароса "GET /site1/?zuzu1234567 HTTP/1.1"


RewriteCond %{THE_REQUEST} ^[A-Z]{3,7}\ /site1/\S*zuzu\S*\ HTTP
RewriteRule ^ - [F,L]

Убрать совсем RewriteCond %{REQUEST_METHOD} GET

или поменять RewriteCond %{REQUEST_METHOD} GET|POST

Тогда так


RewriteCond %{REQUEST_METHOD} GET
RewriteRule ^(.*/)?zuzu - [L,F]

В %{HTTP_HOST} просто site.ru т.е домен без http://

Стоит убедиться, что файл site.ru_index.html существует и он доступен по адресу http://site.ru/site.ru_index.html

Если все на месте, тогда пробовать варианты с %2_index.html и /%2_index.html


DirectoryIndex

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?(.+)
RewriteRule ^$ %2_index.html [L]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]


RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]{3,7}\ /\ HTTP
RewriteCond %{HTTP_HOST} ^(www\.)?(.+)
RewriteRule ^ %2_index.html [L]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
siv1987:

RewriteEngine On
RewriteRule %{HTTP_HOST} ^(www\.)?(.+)
RewriteRule ^(index\.html)?$ /%1_index.html [L]

Там не только %2 но и RewriteCond :)


RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?(.+)
RewriteRule ^(index\.html)?$ /%2_index.html [L]

Обсуждалось не раз достаточно поискать по запросу "слеш в конце".

Для редиректа только части адресов ставить правила сразу поле RewriteEngine On.


RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+(/[^/]+)?)$ /$1/ [R=301,L]


RewriteCond %{REQUEST_URI}?%{QUERY_STRING} =/itemnews.php?idn=300
RewriteRule ^ http://fish/test2.html? [L,R=301]

Или использовать переменную THE_REQUEST. Там будет полная строка запроса отправленная браузером "GET /itemnews.php?idn=300 HTTP/1.1".


RewriteCond %{THE_REQUEST} ^[A-Z]{3,7}\ /itemnews.php\?idn=300\ HTTP
RewriteRule ^ http://fish/test2.html? [L,R=301]
awasome:
В слайдерах не первых раз баги находят.

ЗЫ: оно, там даже ссылка есть victim.com/wp-admin/admin-ajax.php?action=revslider_show_image&img=../wp-config.php

И кстати, этот код помогает?

<Files wp-config.php>
Order Deny,Allow
Deny from all
</Files>

Шаблон в директиве <Files wp-config.php> применяется только к имени запрашиваемого файла в данном случае это admin-ajax.php. Имя файла wp-config.php находится в GET параметрах и в сравнении с шаблоном не участвует.

Поменять квантификатор * (ноль или более) на + (один или более)

^articles/([^/]+)$

Всего: 749