У меня есть файл test.php, чтобы переписать в test.json
В .htaccess я установил
RewriteRule ^test.json$ /test.php
Перезапись работает правильно, но если я открою старый URL, test.php,
я все еще могу получить доступ. Для оригинального URL я бы 404 ошибка.
То, что вы хотите, это добавить дополнительное правило для обработки вашего test.php
, Вот пример того, что вы можете получить в итоге:
В файле .htaccess в каталоге, где вы хотите «сервер» вашего test.json:
RewriteEngine on
RewriteRule ^test.json$ /test.php [L,END]
В файле .htaccess в корне сети:
RewriteEngine on
RewriteRule ^test.php$ - [L,R=404]
В качестве альтернативы, если вы хотите, чтобы они все были в одном и том же каталоге, он мог бы быть там в одном файле .htaccess:
RewriteEngine on
RewriteRule ^test.json$ /test.php [L,END]
RewriteRule ^test.php$ - [L,R=404]
Обратите внимание, что END
Флаг необходим, чтобы остановить Apache от выполнения другого цикла и переписать test.php с ошибкой 404.
Других решений пока нет …