私のURLが次の場合:
http://mywebsite.com/lawyer/my-lawyer-profile
lawyer
同様のすべてのリクエストの URL から削除するにはどうすればよいですか?
RewriteRule ^lawyer/(.+)/$ /$1
それはうまくいかないようです...もちろん、URLにアクセスできますhttp://mywebsite.com/my-lawyer-profile
が、URLを常に書き換える必要があります。
私のURLが次の場合:
http://mywebsite.com/lawyer/my-lawyer-profile
lawyer
同様のすべてのリクエストの URL から削除するにはどうすればよいですか?
RewriteRule ^lawyer/(.+)/$ /$1
それはうまくいかないようです...もちろん、URLにアクセスできますhttp://mywebsite.com/my-lawyer-profile
が、URLを常に書き換える必要があります。
クライアントブラウザで実際に書き換えを実行するには、コマンドの最後に適切なフラグがあることを確認する必要があります。だからこのようなもの:
RewriteRule ^lawyer/(.*)$ /$1 [R=301,L]
ここでは、R=301
使用する適切なURLを示す301 FOUNDヘッダーをブラウザー(および検索エンジンスパイダーなど)に提供します。フラグは、L
これが実行される最後のルールであることを示します(つまり、リダイレクトを実行して、残りの.htaccessファイルの確認を続行しないでください)。
/ lawyer /が/にリダイレクトし、URIの最後に末尾のスラッシュが必要ないようにルールも少し変更したことに注意してください(たとえば、クエリ文字列がある場合)。
フラグを追加して[R=301]
、末尾のスラッシュを削除してみてください。
RewriteRule ^lawyer/(.+)$ /$1 [R=301,L]
これにより、誰かが次の場所に行くときにそうなります:
http://mywebsite.com/lawyer/my-lawyer-profile
ブラウザは次の場所にリダイレクトされます。
http://mywebsite.com/my-lawyer-profile
あなたのパターンには先頭の がなく、末尾にある/
URL のみに一致します/
。あなたはおそらくそれを望んでいません。
RewriteRule ^/lawyer/(.+)$ /$1 [NE]
(NE フラグは、クエリ セグメントではなくパス部分に書き込むため、% エスケープの追加レイヤーが適用されるのを防ぎます。)
URL を /lawyer/my-lawyer-profile から /my-lawyer-profile/ に自動的に変更する必要があります
ブラウザに表示される URL を短いバージョンにプッシュしたい場合: それは書き換えではなく、単純な古いリダイレクトです。R フラグを使用してリダイレクトを行うことができますが (前述のとおり)、単純なリダイレクトのために mod_rewrite の Swiss Army Chainsaw を取り出す必要は実際にはありません。
Redirect permanent /lawyer /