Как насчет тега rel="canonical" ?
А с редиректом поможет URL Rewrite Module для IIS
<rule name="Редирект дублей" stopProcessing="true"> <match url=".*" /> <conditions> <add input="{QUERY_STRING}" pattern="&a?(id=[0-9]+)" /> </conditions> <action type="Redirect" url="http://site.ru/?{C:1}" RedirectType="Permanent" appendQueryString="false" /> </rule>
Для каждого RewriteRule нужен свой набор RewriteCond
RewriteEngine On RewriteCond %{HTTP_HOST} ^([^\.]+)\.site\.ru$ RewriteRule ^([^\.]*)$ script1.php?param1=%1 [L] RewriteCond %{HTTP_HOST} ^([^\.]+)\.site\.ru$ RewriteRule ^([^/]*).html$ script2.php?param1=%1¶m2=$1 [L] RewriteCond %{HTTP_HOST} ^([^\.]+)\.site\.ru$ RewriteRule ^([^/]*)/([0-9]*)-([a-z0-9_-]*).html$ script3.php?param1=%1¶m2=$1¶m3=$2¶m4=$3 [L]
Другой вариант с использованием RewriteCond
RewriteCond %{REQUEST_URI} !/plugins/xxx/RewriteCond %{REQUEST_FILENAME} -fRewriteCond %{REQUEST_URI} \.php|\.ini|\.xml [NC]RewriteCond %{REQUEST_URI} /templates/ [OR]RewriteCond %{REQUEST_URI} /plugins/ [OR]RewriteCond %{REQUEST_URI} /xmlrpc/RewriteRule ^(.*)$ index.php [R=404,L]
Ну, самый очевидный вариант, почему может не работать — .htaccess находится в корне сайта, а плагин в /folder/plugins/xxx/
Тогда стоит убрать ^ из шаблона.
RewriteRule plugins/xxx/ - [L]
/ru/forum/comment/11618405;postcount=12
А если так
RewriteRule ^plugins/xxx/ - [L]
<Files "file.html"> Deny From 11.22.0.0/16 </Files>
Или
RewriteEngine On RewriteCond %{REMOTE_HOST} ^11\.22\. RewriteRule ^catalog/file.html$ - [F,L]
Достаточно вставить выше ваших запрещающих правил такое:
RewriteRule ^plugins/file.php$ - [L]
RewriteEngine On RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^.]+)\.html\ HTTP RewriteRule ^([^.]+)\.html$ http:///www.****.ru/$1 [R=301,L] RewriteCond %{REQUEST_FILENAME}.html -f RewriteRule (.*) /$1.html [L] DirectorySlash Off
Как раз реферер не вашего сайта будет только при запросе html страницы, а вот картинка на этой странице уже будет запрашиваться с реферером вашего сайта.