.htaccess を使用して .php ファイル拡張子を非表示にする: トラブルシューティングのヒント
.htaccess を使用して .php ファイル拡張子を非表示にする手順に従っているにもかかわらず、困難に直面しています。問題を調査し、修正された解決策を提供しましょう。
最初の .htaccess コードは、特定の「フォルダー」ディレクトリ内の URL を書き換えようとしました。ただし、対応する RewriteCond ディレクティブがないため、不完全に見えます。これに対処するには、次の変更コードが機能する必要があります:
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^folder/([a-zA-Z_\-0-9]+)/?$ /folder/.php </IfModule>
RewriteCond 行は、要求されたファイルが存在しない (つまり、静的ファイルではない) 場合にのみルールが適用されることを保証します。
さらに、さまざまなシナリオを適切に処理するには、受け入れられた回答で提案されているような、より包括的な .htaccess コードの使用を検討してください。
RewriteEngine On # Unless directory, remove trailing slash RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([^/]+)/$ http://example.com/folder/ [R=301,L] # Redirect external .php requests to extensionless URL RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/ RewriteRule ^(.+)\.php$ http://example.com/folder/ [R=301,L] # Resolve .php file for extensionless PHP URLs RewriteRule ^([^/.]+)$ .php [L]
このコードは、.php 拡張子を隠すだけでなく、末尾のスラッシュ、外部 .php リクエストを処理し、拡張子のない URL の .php ファイルを内部的に解決します。
覚えておいてください、.htaccess ファイルがプロジェクトのルート ディレクトリに配置されていることを確認し、ファイルのアクセス許可をチェックして、ファイルが読み取り可能であることを確認してください。 Web サーバー。
以上が.htaccess で .php ファイル拡張子を非表示にできないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。