2012-03-07 11 views
0

work.php から両方のPHPファイルを表示するように私のルールを書きました。.htaccessすべてのPHPファイルを書き換えます

Options +FollowSymlinks 
RewriteEngine on 

Options -MultiViews 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^\.]+)$ $1.php [NC,L] 

私が午前問題を追跡し、私はhtaccessファイルはこれで助けることができることを確認していないと私.hataccessは、私のコードのすべてが.phpの末尾に付加した、ということです。 これを簡単に処理する方法はありますか? .htaccessを強制的に.phpをすべてに変更しますか? 私は、可能ではなく、コードレビューを行い、それらをすべて手作業で変更する必要があることは間違いないと確信しています。

私はそれを明らかにしたいと思います。

ありがとう

+0

はい。 RewriteRulesは* incoming * URLのみを適合させます。 HTML出力の相対リンクは、コード内で適合させる必要があります。 - RewriteRulesの第2のセットを介して一時的なHTTPリダイレクトを発行することができます。それは愚かに見えるだろう。 – mario

答えて

6

をあなたは拡張子.phpを隠すために使用できるコードです。あなたの$ DOCUMENT_ROOTディレクトリに.htaccessファイルの中に置く:

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

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

## To internally redirect /dir/foo to /dir/foo.php 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule^%{REQUEST_URI}.php [L] 
0

はこのお試しください:ここで

RewriteRule ^([^.]+).php$ http://www.site.com/$1 [R=301,L] 
0
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)\.html $1\.php 
</IfModule> 
+0

は、それがルートにあると仮定します。これは古い投稿ですが、サブドメインのルートのために修正したものが見つかるまで、これらの回答は私のために働いていませんでした。それがディレクトリの場合は、RewriteBaseをそれに応じて変更します。 – Christina