0

/something.php から /something への URL を作成するために、私の .htaccess ファイルは次のようになります。

Options -Multiviews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f    
RewriteCond %{REQUEST_FILENAME} !-d   
RewriteRule ^(.*)$ $1.php [L]          

php 拡張機能を要求しても、引き続き機能します。.php 拡張子が要求された場合、どうすれば 404 を返すことができますか? ありがとうございました。

4

2 に答える 2

1

まず、アプローチを次のように短縮する必要があります。

 RewriteCond %{REQUEST_FILENAME}.php -f
 RewriteRule ^(.*)$ $1.php [L]      

これは、ベース名がないことではなく、.php ファイルの存在を調べます。

これが[LAST]ルールであるため、後で (または RewriteRule/RewriteCond ブロックの前に) 既に存在する .php サフィックスを調べることができます。

 RewriteRule ^(.*)\.php$ - [F]

...またはそのような場合はリダイレクトを発行します。

于 2013-02-10T20:14:02.583 に答える
0

それを試してみてください

  <FilesMatch "\.(php)$">
      RewriteRule ^(.*)$ /404.html [L,S]
  </FilesMatch>
于 2013-02-10T20:18:49.400 に答える