Апач, хочу сперва 404, потом 301

T
На сайте с 29.03.2004
Offline
183
tav
822

www.site.ru/* является главным зеркалом, на него идет 301 редирект с site.ru/*, всё работает

Но если страница site.ru/ops.htm отсутствует, то сперва идет 301 редирект на www.site.ru/ops.htm, а потом 404 код ошибки

Как сделать так, чтоб апач сперва проверял наличие файла и если его нет, отдавал 404 (для site.ru/ops.htm), а если все Ок - редиректил (с site.ru/good.htm на www.site.ru/good.htm)

ЗЫ нужно решение не для 1 страницы, а в принципе для отсутствующих

Турфирмам - бесплатное размещение инфо о фирме и о турах. Всем - медийную рекламу и статьи на сайтах про города и страны. Пишите в личку
M
На сайте с 04.12.2013
Offline
210
#1

Описанное вами поведение в принципе нормально. Но если сильно надо:


RewriteCond %{REQUEST_FILENAME} -f
правило для редиректа


---------- Добавлено 21.03.2016 в 13:16 ----------

P.S. Перед правилом может быть любое кол-во условий.
Хостинг FOZZY ( https://u75.ru/fozzy ) / Выслушаю предложения на домены ( https://u75.ru/domains-for-sale ) / Домены и скрипт для коротких ссылок ( https://u75.ru/domains-for-shortcuts )
T
На сайте с 29.03.2004
Offline
183
tav
#2

к сожалению, не спасает

на одном из хостингов (там, где редирект site.ru/*->www.site.ru/* в htaccess ) он делает

site.ru/ops.htm 301 -> www.site.ru/404.htm (моя страница для обработки ошибок)

затем

www.site.ru/404.htm с 200

На другом ничего не делает (там, где редирект site.ru/*->www.site.ru/* в httpd.conf )

L
На сайте с 10.02.2015
Offline
170
#3

.htaccess в студию

seocore
На сайте с 25.09.2006
Offline
143
#4
tav:
ЗЫ нужно решение не для 1 страницы, а в принципе для отсутствующих

Не имеет смысла это делать. ПС и так поклеит эти два домена, т.е. 404 так и так будет корректно оценена. Все настроено верно, все редиректим 301 на новый домен, а там уже по факту даем 200 или 404.

Инструменты для веб-мастера: кластеризатор СЯ (https://goo.gl/MQWfqO), все запросы конкурента (https://goo.gl/hd5uHS), дешевые XML-лимиты (https://goo.gl/aDZbPI)
T
На сайте с 29.03.2004
Offline
183
tav
#5

seocore, это понятно, но есть желание

Вот .htaccess для первого варианта

Options -Indexes


ErrorDocument 404 /404.php

Options -MultiViews

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^site.ru [nocase]
RewriteRule ^(.*) http://www.site.ru/$1 [last,redirect=301]

RewriteRule ^art/(.*)/(.*)$ /art\.php?first=$1&art=$2

во втором варианте нет строк

RewriteCond %{HTTP_HOST} ^site.ru [nocase]

RewriteRule ^(.*) http://www.site.ru/$1 [last,redirect=301]

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