.htaccess で .php ファイル拡張子を非表示にできないのはなぜですか?

Mary-Kate Olsen
リリース: 2024-11-06 18:08:02
オリジナル
294 人が閲覧しました

Why Can't I Hide My .php File Extension with .htaccess?

.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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!