mod_rewriteはいつも私の最も弱い分野の一つです。私はしばらくこの解決策を見つけようとしましたが、多くの回答は単にmod_rewrite documentationにリンクしています。これは私には役に立ちません。私は自分の問題がかなりシンプルだと信じています。だから、今度は誰かが私にフリーズを与えてもらえないことを願っています。Apache2とDrupalの古いURLのパターンのリダイレクト
私はDrupalのためのいくつかの既存のmod_rewriteルールを持っている:
もちろん、正常に動作し、RewriteEngine on RewriteBase/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
。彼らはDrupalルールを購入しています。
私は、私はこれにルールを変更し
/snippets/name-of-article
に
/snippet/yyyy-MMM-dd/name-of-article
の要求をリダイレクトする:
RewriteEngine on RewriteBase/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^snippet/20[0-9]{2}-[a-z]{3}-[0-9]{2}/(.*)$ snippets/$1 [L,R=301] ### MY NEW RULE RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
私の新しいルールが期待どおりに動作、および実行正しくリダイレクトします。しかし、CSSやJSリクエストには影響を与えているようです。エラーログにスタイリングやスクリプト、g、404エラーがないことが明らかです。 CSSまたはJSファイルを直接表示しようとすると、親ドキュメントを要求したのと同じHTML出力が得られます。だから明らかに、私のルールは壊れています。
なぜこれが難しいのか分かりません - 単純なようです。