.htaccess выбрасывает 404, а затем 301 на несуществующий путь

В настоящее время у меня это настроено в моем .httaccess

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\.(php|html|txt|js|css|png|jpe?g|gif|svg|woff|ico|csv|xml|pdf|gzip)
RewriteCond %{REQUEST_URI} !^/?$
RewriteRule (.*) /$1.php [L,R=301]

, поэтому я перенаправляю все URL-адреса, не имеющие расширений, на страницы php.

например, я перенаправляю / test на /test.php и при этом бросаю 301.

Я бы хотел сначала отправить 404 на / test и сразу после этого бросить 301 и перенаправить на /test.php .

Можно ли для этого записать что-нибудь в .htaccess или в файлы apache .conf ?

0
задан 8 January 2019 в 12:20
1 ответ

сначала бросить 404 на «/ test» и сразу после бросить 301 и перенаправить на «/test.php".

Вы не можете этого сделать - независимо от того, какой метод вы используете ( .htaccess , Apache, PHP и т. Д.). HTTP работает не так. (Но я не уверен, почему вы хотите это сделать - контент либо не существует, либо он перемещен, не может быть и тем и другим).

  1. Запросы браузера / test
  2. Сервер отвечает с 404. (Первоначальный запрос браузера на этом заканчивается.)
  3. Затем «браузеру» нужно будет сделать еще один запрос для сервера, чтобы затем ответить 301. (Браузеру также нужно будет изменить запрос, чтобы сервер не знал, что нет. отправить 404, но вместо этого отправить 301.) - Этого не произойдет.

На любой отдельный запрос вы получите один ответ - один код состояния.

0
ответ дан 5 December 2019 в 04:36

Теги

Похожие вопросы