siv1987

siv1987
Рейтинг
427
Регистрация
02.04.2009
Милованов Ю.С:
То есть, этот способ подойдет для защиты контента от использования другими сайтами.

Так антилич, запрет хотлинкинга для этого и придуманы. Конечно от растаскивания они не спасут, просто сделает невозможным публиковать ссылки на чужих сайтов на изображения со своего хостинга.

ПС. Топик не читал.

Милованов Ю.С:
Но весь прикол в том, что тыкаю правой кнопкой по изображению и могу его сохранить у себя на компе

А вы случайно не из кеша браузера сохраняете?

Какбэ если код правильно настроили, то вы не как не могли скачать даже и по "сохранить"

ProTeg:
а какой лучше?

Тот который подходит для вашего случая.

ТС, можете попробовать (выбрать один вариант)

для страницы ошибки

RewriteEngine On

RewriteCond %{QUERY_STRING} !^name=[a-zA-Z]+&op=[a-zA-Z]+&id=\d+$

RewriteCond %{QUERY_STRING} !^name=[a-zA-Z]+&op=[a-zA-Z]+&id=\d+&pid=\d+$

RewriteRule ^index\.php 404.html [G,L]

для редиректа

RewriteEngine On

RewriteCond %{QUERY_STRING} ^(name=[a-zA-Z]+&op=[a-zA-Z]+&id=\d+&pid=\d+).

RewriteRule ^index\.php /index.php?%1 [R=301,L]

RewriteCond %{QUERY_STRING} !^name=[a-zA-Z]+&op=[a-zA-Z]+&id=\d+&pid=\d+$

RewriteCond %{QUERY_STRING} ^(name=[a-zA-Z]+&op=[a-zA-Z]+&id=\d+).

RewriteRule ^index\.php /index.php?%1 [R=301,L]

Midnik:
Я не особо в синтаксисе, а как я понял это стандартный синтаксис регулярных выражений пхп

Это стандартный синтаксис PCRE который используется и в php.

Midnik:
И вот выше описанной строчкой мы определяем наш урл и если он не определяется, то редиректим пользователя третьей строчкой на главную - правильно?

В примере на самом деле редиректится не на главной а на "правильный" урл.

А если соответственно редеректить нужно на страницу ошибки, то что-то вот такое должно получиться:

Синтаксис неправильный, но страницу ошибки надо не редиректить, а реврайтить.

Это убрать

Evpen:
Redirect 301 /staroe1/staroe2/ http://site.ru/novoe1/novoe2/

После RewriteBase добавить

RewriteRule ^staroe1/staroe2/ /novoe1/novoe2/ [R=301,L]

Midnik:
Увы, но я не понимаю о чем речь. Я думал, что такие вещи настраиваются в хэтэасессе.

Нет, к сожалению именно такие вещи в htaccess не настраиваются. Для htaccess есть файл index.php, он рабочий, остальные параметры которые ему передаются его не волнуют. Вы должны у себя в скрипте настроить правильную обработку всех входящих переменных и выдавать соответствующие заголовки. Как вариант, можно через мод_реврайт проверить входящие переменные, и если они не соответствует шаблону закрыть закрыть доступ или сделать редирект на верный вариант, что-то примерно по вашему случаю

RewriteEngine On

RewriteCond %{QUERY_STRING} ^(name=[&]+&op=cat)[.]

RewriteRule ^(index\.php) /$1?%1 [R=301,L]

cat естественно заменить на имена ваших категорий, или смотря что у вас там

Вам выше дали ответ по поводу ваших проблем.

siv1987:
делать нормальную проверку у себя в скрипте.

RewriteRule ^([^/]+)/(подраздел1|подраздел2|подразделN).html /$1.html [R=301,L]

RewriteRule ^([^/]+)/(подраздел1|подраздел2|подразделN)/(.+) /$1/$3 [R=301,L]

htaccess не может телепатически определять какие страницы у вас существуют при динамическом генерирования а какие нет. Вы можете только задать конкретные параметры по которым может открываться страницы. А еще лучше делать нормальную проверку у себя в скрипте.

Всего: 6568