Как сделать редирект (301, 302). Общая тема -2

J 94
jkm
#71
Васо Вчеразаши:
запрос без параметров, но с символом "?" на конце? Например site.ru/? или site.ru/razdel/ctranica?

Тогда вместо


RewriteCond %{REQUEST_METHOD} GET
RewriteCond %{QUERY_STRING} ^.

Ставить

RewriteCond %{THE_REQUEST} "GET \S+\?"
S 459
#72
Васо Вчеразаши:
А можно еще сделать, чтобы данное правило работало на запрос без параметров, но с символом "?" на конце? Например site.ru/? или site.ru/razdel/ctranica?

Не нужно этого делать. Нужно делать редирект 301.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
Avatar 40
#73
Sitealert:
Нужно делать редирект 301.

Уже не однократно поднималась эта тема, как я понимаю все-таки 404 вернее /ru/forum/comment/16259118

jkm:

Ставить
RewriteCond %{THE_REQUEST} "GET \S+\?"

Но тогда 404 отдает стандартную, а не мою сделанную(

S 459
#74
Васо Вчеразаши:
Уже не однократно поднималась эта тема, как я понимаю все-таки 404 вернее /ru/forum/comment/16259118

Да, burunduk дал в той теме дельный совет

burunduk:
так надо обращаться к специалистам, а не к говнокодерам
Avatar 40
#75
Sitealert:
Да, burunduk дал в той теме дельный совет

Ну тогда при чем тут говнокодеры? Вы не согласны с утверждением, что по ссылке с параметрами нужно 404 отдавать?

S 459
#76

Васо Вчеразаши, это сложный вопрос, всё зависит от нюансов, но в этой теме подобные вопросы не обсуждаются. Здесь – только как сделать серверный редирект.

A 775
#77
Васо Вчеразаши:

Но тогда 404 отдает стандартную, а не мою сделанную(

Страницы со знаком вопроса сами по себе имеются на сайте или как на вп генерятся? Если второе, то забить болт, что отдавать (каноникал только добавить, если отсутствует). Я в свое время ставил 403 как один из способов снизить нагрузку (долбили по этим знакам вопроса боты).

Avatar 40
#78

awasome, Вопрос тут не в том, что отдавать - с этим разобрался. Страниц с параметрами нет, кроме одного исключения, для которого и добавил правило. На данный момент не пойму почему с кодом

RewriteCond %{REQUEST_METHOD} GET
RewriteCond %{QUERY_STRING} ^.
RewriteCond %{REQUEST_URI} !^/razdel/skript\.php
RewriteRule ^ - [R=404,L]

Строчка

ErrorDocument 404 /404.html
срабатывает и браузеру отдается моя 404 страница. А с кодом

RewriteCond %{THE_REQUEST} "GET \S+\?"
RewriteCond %{REQUEST_URI} !^/razdel/skript\.php
RewriteRule ^ - [R=404,L]

В браузер отдается стандартная серверная (или стандартная браузерная?) страница 404.

J 94
jkm
#79

После внутреннего перенаправления на /404.html этот адрес снова проверяется правилами mod_rewrite.

ErrorDocument 404 /404.html


RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{THE_REQUEST} ^GET.+\?
RewriteCond %{REQUEST_URI} !^/razdel/skript\.php
RewriteRule ^ - [R=404,L]

Или так

ErrorDocument 404 /404.html


RewriteCond %{THE_REQUEST} ^GET.+\?
RewriteCond %{REQUEST_URI} !^/razdel/skript\.php
RewriteCond %{REQUEST_URI} !^/404\.html
RewriteRule ^ - [R=404,L]
Avatar 107
#80

Всем привет!

Как настроить 301 редирект с удаленной страницы тега на созданную новую страницу?

  • CMS DLE.
  • URL страницы тега был кириллическим.
  • через некоторое время эта страница была удалена.
  • вместо неё создана подкатегория (URL - латиница).
  • Redirect 301 /tags/страница+тега/ http://site.ru/category/pub/

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