Apache の Rewrite についてはよくわかりませんが、.htaccess ファイルに問題があります。
元の .htaccess は
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9-_.]*)$ /profile.php?id=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
# Redirect non-www to www:
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
# Unless directory, remove trailing slash
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/$ http://www.domain.com/$1 [R=301,L]
# Redirect external .php requests to extensionless url
RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(.+)\.php$ http://www.domain.com/$1 [R=301,L]
# Resolve .php file for extensionless php urls
RewriteRule ^([^/.]+)$ $1.php [L]
ErrorDocument 404 /404.html
最初の書き換えはバニティ URL 用で、もう 1 つは非 www を www にリダイレクトし、その後 .php を拡張子なしにリダイレクトし、.php ファイルを拡張子なしにリダイレクトします。
私が直面している問題は、www.domain.com/ttt.php を要求し、ttt が存在しない場合、http://www.domain.com/profile?id=ttt.php にリダイレクトされることです 。たとえば、ttt.png ファイルがあり、www.domain.com/ttt を開くと、404 エラーが表示されるのではなく、画像が開きます。
同様に、他のタイプのファイルでも発生します。名前が共通の場合、最初に .txt ファイルを開きます。
これを変更していただきありがとうございます。真剣に、サイトを台無しにしたくありません。