1

URL の末尾に .php 拡張子を使用して、ユーザーが自分のページに直接アクセスするのをブロックする書き換えルール (mod_rewrite) が必要ですが、自分の Web サイト フォルダーに自分の php ファイル拡張子を保持したいです。もう1つの問題は、サーバーが拡張URLリクエストを受け入れず、ユーザーをそれぞれの.phpページに連れて行くことです。次の書き換えコードがあります。

RewriteEngine On
RewriteRule \.php$ - [R=404]
RewriteRule ^(.*)$ $1.php

私が望んでいたように、最初のルールは 404 エラーを与えています。しかし、2 番目のルールは、それが単独である場合にのみ機能し、他のルールはありません。上記のブロックでは、拡張子のない URL を入力すると、サーバーがリクエストを「リダイレクト」して .php 拡張子を追加していると思いますが、最初のルールはユーザー リクエストのように動作し、404 エラーを返し、2 番目のルールを作成します。思うように働かないこと。

リクエストがWebサイトユーザーからのものである場合にのみ最初のルールを適用し、書き換えエンジンからのものである場合は無視するようにサーバーに指示するには、何らかの書き換え条件が必要だと思います。出来ますか?

4

1 に答える 1

1

私はまだ htaccess の第一人者ではありませんが、これが役に立てば幸いです。

RewriteCond %{THE_REQUEST} \.php
RewriteRule \.php$ - [R=404]

RewriteCond %{REQUEST_URI} !(\.php)
RewriteCond %{REQUEST_URI} !(^\/error\/.*$)
RewriteRule ^(.*)$ $1.php [L]
于 2013-08-07T17:14:16.690 に答える