私は何が間違っているのか見逃してしまったり、ここで欠けているものがあります。書き換えられたURLのクエリ部分をリモートでリダイレクトした後に削除するにはどうすればよいですか?
基本的には、HTML、CSS、およびJavaScriptファイルのリクエストを個別に処理するために、中央のディスパッチャファイル(index.php)と組み合わせて使用される簡単な書換えルールがあり、そのように見えます。
RewriteEngine on
RewriteRule (.+)\.html$ index.php?action=view&url=$1.html [L]
RewriteRule (.+)\.css$ index.php?action=resource&type=css&url=$1.css [L]
RewriteRule (.+)\.js$ index.php?action=resource&type=js&url=$1.js [L]
長い話では、これらのルールが正常に動作しかし、私はに永続的にリダイレクトする必要のいずれかのURLにエラー(301)があることをサイトの責任SEO機関によって通知されてきた短いカット正しいリンク。リダイレクトが必要なURLは1つだけなので、URL書き換えの代わりにRedirect
を使用し、次のルールを追加しました。これは、リモートリダイレクトがpage1.htmlのために行われた後、私は、クエリの一部を取得しているという事実を除いてあまりうまく機能
Redirect 301 /page1.html /page2.html
(?アクション=ビュー& URL = page2.html)がブラウザに表示しましたアドレスバー。私は完全にHTMlのリライトルールは、URLで完了した後に単にクエリ文字列部分を追加したが、リモート301リダイレクトが実行された後にクエリ部分を取り除くためには何が必要なのかを完全に理解しています。
ちょうど私はURL書き換えメソッドも試しましたが、私はLフラグをどうにかして無視し、HTML書き換えルールを実行しているようです。
私はすでに、あたかもそのルールを何百回も書き直してみましたが、それは単にうまくいかなかったのです...私がテストサーバーのフォルダが仮想のDocumentRootテストのために使用されるホスト:( RewriteBaseの単純な追加によって問題が解決されました。 – brezanac