[Apache-Users 7617] htaccessのリダイレクト

fujioka qhtsige @ apost.plala.or.jp
2010年 2月 10日 (水) 10:54:18 JST


次の.htaccessについて質問します。

RewriteEngine on
RewriteBase /

RedirectMatch 301 ^([0-9A-Za-z_.'=-])\.html$ mkpage2.php?yspec=$1&src=html 
[L]  行1a
RedirectMatch ^([0-9A-Za-z_.'=-])\.html$ mkpage2.php?yspec=$1&src=html [L] 
行1b

RewriteCond %{REQUEST_FILENAME} !-f    行2
RewriteCond %{REQUEST_FILENAME} !-d    行3
RewriteRule ^([0-9A-Za-z_.'=-]+)\.html$ mkpage2.php?yspec=$1&src=html [L]   行4

現在、行1a,bは無く、行2,3、4にて正常にリダイレクトして運用しています。 

これは例えば Poa_alpina.html を  mkpage2.php?yspec=Poa_alpina&src=html  にリダイレクとしています。
このリダイレクトをステータス301に変更しようとしています。
(1)そのため、行1のようにして、マッチすれば301を返そうとしましたが、error.logの結果は
D:/upload/.htaccess: Redirect takes two or three arguments, an optional 
status, then document to be redirected and destination URL
のようにで、もうひとつ意味がわかりかねますが、パラメータの数が多すぎるという風に見えました。実際行1bとするとこのエラーは消えましたので、そうかなと思いました。ここでわからないことは、
http://httpd.apache.org/docs/2.0/ja/mod/mod_alias.html
によれば、RedirectMatchもステータスがオプションで設定可能となっているので、よくわからないのです。

(2)しからば、行1bとするならば、行2,3では除外されている、index.htmlなどもマッチして、リダイレクトされるはずが、実際はそうならず、そのまま通ります。これもよくわからないのです。

他にもわからないことがあるのですが、比較的基本的そうな以上2点に教えてください。 





Apache-Users メーリングリストの案内