Варианты расширений файла php,htm,html описываются регулярным выражением (php|html?)
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.(php|html?)\ HTTP/ RewriteRule ^ http://www.site.ru/ [R=301,L]
Браузер не отправит в запросе эту часть урл, так что на стороне сервера невозможно узнать было там #info или нет.
В строке с RewriteRule если DOMAIN.ru название домена, а не часть пути к файлу, то явно не хватает http://
RewriteRule ^(.*)$ http://DOMAIN.ru/$1 [R=301,L]
/abc.php/ => /abc.php
RewriteRule ^(.*\.php)/$ /$1 [L,R=301]
RewriteEngine on deny from all
RewriteEngine On просто включает mod_rewrite, но т.к. нету RewriteRule и RewriteCond то и работать там нечему.
Возьмите пример из https://ru.wikipedia.org/wiki/%D0%A5%D0%BE%D1%82%D0%BB%D0%B8%D0%BD%D0%BA и адаптируйте под свои нужды.
.htaccess в папке /files/
RewriteEngine On RewriteCond %{HTTP_REFERER} !^http://(.+\.)?site2\.ru/ [NC] RewriteRule \.txt$ - [L,F]
Убрать из шаблона \.htm
^rubrika/(.+)$
Поменять %{THE_REQUEST} на %{QUERY_STRING}
Строку "option=com_content" следует искать в %{QUERY_STRING}. В переменной %{THE_REQUEST} находится полная строка запроса "GET /index.php?option=com_content HTTP/1.1", так что правило будет такое:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,7}\ /index\.php\?option=com_content\ HTTP RewriteRule ^ http://site.ru/? [R=301,L]
Или так
RewriteCond %{QUERY_STRING} ^option=com_content$ RewriteRule ^index\.php$ http://site.ru/? [R=301,L]
И ставить правило сразу после RewriteEngine on.
Как говаривал Зигзаг Маккряк - Отличная авария, восемь с половиной по десятибалльной шкале!
Разместить выше правила с /rubrika/view-page.php
RewriteRule ^rubrika/category/page888\.htm$ /rubrika/page888.htm [R=301,L]
Как-то так
dir /s /b > done.txt
xn--p1ai$/
Символ $ здесь явно не к месту.
RewriteCond %{HTTP_HOST} ^domen\.ru$ [NC] RewriteRule ^(.*)$ http://punycode.xn--p1ai/$1 [R=301,L]