drupal サイトの .htaccess ファイルにいくつかの書き換えルールを書き込もうとしていますが、まったく機能していないようです。正規表現と mod_rewrite に関する予備知識と経験が不足していることも、原因を解決していないようです。
書き換えようとしている URL は次のとおりです。
ソース:
http://www.mydrupalsite.com/somealphanumericwithspecialchars/somealphanumericwithspecialchars/somealphanumericwithspecialchars/somealphanumericwithspecialchars/Keyword1/Keyword2/UNIQUEID?queryparam1=somenumber
行き先:
http://www.mydrupalsite.com/legacystuff/UNIQUEID
私の .htaccess mod_rewrite コードは
RewriteEngine on
# Rewrite URLs of the form 'x' to the form 'index.php?q=x'.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
#This is the only rule written by me others are drupals
RewriteRule ^(.*)/(.*)/(.*)/(.*)/Keyword1/Keyword2/([0-9]*)?$ legacystuff/content/$5 [R=302]
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
チュートリアルの簡単なブラウジングに基づく私の理解と実装は、最初の 4 つ(.*)
は URL の 4 つの英数字の特殊文字と一致し、keyword1 と keyword2 は一定のままであるため、目的地に実際に必要な一意の数値 ID として一致させることができました。 URL (宛先のパラメータ $5) は によってキャプチャされ([0-9*])?
ます。ローカル環境のhttpd.confで次の vhost を使用します
<VirtualHost *:80>
DocumentRoot "C:/wamp/www/mydrupalsite"
ServerName mydrupalsite.com
</VirtualHost>
問題は、ローカル サーバーを再起動してキャッシュをクリアした後、ソース URL から宛先 URL へのリダイレクトが行われないことです。私が間違っていた場所とそれを正しくする方法についての助けをいただければ幸いです。