проблема с htaccess

MA
На сайте с 16.10.2009
Offline
29
788

Добрый день!

следующая запись в htaccess


RewriteCond %{QUERY_STRING} ^(?!par1)(.+)$
RewriteCond %{REQUEST_URI} ^/index.php$
RewriteRule ^ - [G]

работает как положено на локальном сервере, но вызывает ошибку 500 на хостинге (nic)

та же ситуация с этой записью


RewriteCond %{QUERY_STRING} ^(?!par1)(.+)$
RewriteCond %{REQUEST_URI} ^/index.php$
RewriteRule ^ - [R=404]

P.S. а вот такая запись


RewriteCond %{QUERY_STRING} par1=(.*)
RewriteCond %{REQUEST_URI} ^/action/([a-zA-Z0-9_]+):([0-9]+)/?$
RewriteRule ^ - [G]

нормально работает и на локальном и на хостинге.

Подскажите решение,

в чем здесь может быть проблем?

Ищу площадки без бирж под размещение статей Тематика: ландшафтный дизайн, садоводство, комнатные растения, дача и участок.
Raistlin
На сайте с 01.02.2010
Offline
247
#1
me_alex:
RewriteCond %{REQUEST_URI} ^/index.php$

Проблема тут. Вам скорее всего запрещено выходить за пределы public_html

HostAce - Асы в своем деле (http://hostace.ru)
V
На сайте с 25.07.2006
Offline
128
#2

Перво-наперво нужно лог ошибок посмотреть - там более подробно описано, в чем именно проблема

Приватный linux-администратор
MA
На сайте с 16.10.2009
Offline
29
#3
Raistlin:
Проблема тут. Вам скорее всего запрещено выходить за пределы public_html

оказалось, проблема в другом

vapetrov:
Перво-наперво нужно лог ошибок посмотреть - там более подробно описано, в чем именно проблема

лог выдал: cannot compile regular expression '^(?!par1)(.+)$'\n

проблема скорей всего в том, что сервер хостера не понимает такой способ отрицания:


(?!par1)

в итоге, рабочим оказался такой вариант:


RewriteCond %{QUERY_STRING} !^$|^par[0-9]+=.+$
RewriteCond %{REQUEST_URI} ^/index.php$
RewriteRule ^ - [G]

цель - закрыть несуществующие страницы от спамеров

единственно, непонятно пока, что правильней с точки зрения ПС - 404 или 410 ?

Всем спасибо!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий