0

ファイル拡張子を削除してページの URL をクリーンアップしている最中ですが、Web はすぐに次の .htaccess コードを提供します。

RewriteCond %{REQUEST_FILENAME} で RewriteEngine !-d RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule ^(.*)$ /$1.php

動作しますが、以前のように末尾に .php を追加することでファイルにアクセスできます。これはいらない!理想的には、.php で終わるすべての訪問ページが、.php 部分なしで入力されたものとして認識されるようにしたいと考えています。これは達成可能でしょうか?

総括する:

  • www.page.com/example.php は 404 を表示します
  • www.page.com/example には example.php が表示されます

前もって感謝します。

4

1 に答える 1

0

おそらくここでまだ答えを探しているわけではありませんが、誰かがこれに出くわした場合に備えて、その方法を次に示します。

まず、外部リダイレクトを行います。

## hide .php extension
## To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}s([^.]+).php [NC]
RewriteRule ^ %1 [R,L,NC]

次に、内部リダイレクトを行います。

## To internally forward /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*?)/([a-zA-Z0-9_-]+)/([0-9]+)$ /new/$1.php?ID=$3 [L]

それはあなたをそこに連れて行きます!うまくいかない場合は、これらが htaccess ファイルの先頭にあることを確認してください。

RewriteEngine On
RewriteOptions inherit
Options +FollowSymlinks
Options -Multiviews

それでおしまい!私のブログでコーディングについて説明しています: http://kimjoyfox.com/writing-seo-friendly-urls-using-htaccess/

于 2013-12-19T20:47:27.947 に答える