.htaccess仅在目标不存在时重定向

I am trying to use .htaccess to alias a url like example.com/short to example.com/short.php but when I test the configuration I only get redirected when I request a php script that doesn't exist. For example: the page short.php exists but shor.php does not yet when I request the page for example.com/short I get the 404 page for example.com/short but when I request example.com/shor I get the 404 page for example.com/shor.php

the .htaccess I am using is:

RewriteEngine on
RewriteRule ^s/([A-Za-z0-9-]+)/?$ short.php?code=$1 [NC]
RewriteRule ^([A-Za-z0-9-]+)/?$ $1.php [NC,L]

Use that in your .htaccess :

RewriteEngine on
Options -MultiViews

# skip all files and directories from rewrite rules below
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]

RewriteRule ^s/([A-Za-z0-9-]+)/?$ short.php?code=$1 [NC,L]

RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC]
RewriteRule ^([A-Za-z0-9-]+)/?$ $1.php [NC,L]