1

「ランクジュース」を維持するために、.htaccessファイルリダイレクト301を使用して、URLの.php拡張子を削除して検索エンジンフレンドリーにしようとしています。ほぼすべての例を試しましたが、そうではありません動作していないようです。

私がすでに試して失敗した方法のいくつかを次に示します。

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

これが最も一般的な解決策ですが、何も起こらず、変更もありません。

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

何も起こりませんし、変化もありません。

RewriteEngine On
# RewriteCond %{THE_REQUEST} ^GET\ /[^?\s]+\.php
# RewriteRule (.*)\.php$ /$1 [L,R=301]
# RewriteRule (.*)/$ $1.php [L]

Not Foundが表示されます: 要求された URL /AMENPTHOME/hostnd/3/9/9/399fc7b78/www/htdocs/web/dive-sites.php がこのサーバーで見つかりませんでした。

Amen は私のホストであり、この特定の実際の例のファイル dip-sites.php はルートにあります。私の目標は、リダイレクト 301 を使用してwww.domain.com/dive-sitesではなくwww.domain.com/dive-sites.phpにすることです。これは、この URL がしばらくランク付けされているためです。誰か助けてくれませんか?

どうもありがとうございました。

4

3 に答える 3

2

何も見逃していない場合:

RewriteEngine On

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/(.+)\.php[^\s]* [NC]
RewriteRule ^ /%1 [R=301,NE,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_URI}.php [QSA,NC,L]

へのリクエストは へ/dive-sites.phpの 301 リダイレクトを発行し/dive-sites、クエリ文字列があれば追加します。

へのリクエストはasで/dive-sites200 レスポンスを取得し、クエリ文字列があればそれを追加します。/dive-sites.phpContent-Location

于 2013-11-11T12:51:13.677 に答える
1

これを試して:

RewriteEngine on

RewriteRule ^/(.+)(($|#)*(.*)) /$1.php$2

.php のみを削除すると、これが機能します。
$1 = ページの名前、例えばfoo
$2 = ハッシュタグまたは get リクエストに注意してください

例えば。 <ドメイン>/example ----> <ドメイン>/example.php <ドメイン>/example?get=this ----> <ドメイン>/example.php?get=this <ドメイン>/example#hash - ---> <ドメイン>/example.php#ハッシュ


于 2013-11-11T14:19:40.013 に答える