2010-12-02 10 views
5

を持っている拡張子のないすべてのファイルをリダイレクト:の.htaccess - 301が付加さ.html拡張子と同じにいない拡張子を持つファイルへの要求をリダイレクト私は301に必要な.html拡張子

http://www.mydomain.com/this.html 

http://www.mydomain.com/this 

はリダイレクトされませんでした:

http://www.mydomain.com/that/ (it's a directory) 
http://www.mydomain.com/other.php 

以上、感謝に感謝すべてのヘルプ。

答えて

5

以下を試してください。他のルールと競合しないように、セットの最後のルール(つまり、下部)として配置します。

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !\..+$ 
RewriteRule ^(.*)$ /$1.html [R=301,L] 

これは、要求がディレクトリではなく、つまり拡張のいくつかの種類で終わらないようにする必要があります。これらの条件が満たされている場合は、.htmlというリクエストを追加します。

これはテストされていないため、動作する場合はコメントしてください。 ;)

+0

私はhtaccessルールのリストの上に置かなければならなかったが、完全に感謝しました。 – BrynJ

+0

良いええ、あなたのルールをすべて見ずに、私は推測しました。これは通常、上部または下部に配置するのが最善です。私は通常下に行く。 –

関連する問題