[Apache-Users 7653] Re: .htaccess のrewriteルール

SASAO Takahiro sasao @ p-strain.jp
2010年 3月 13日 (土) 20:11:55 JST


笹尾です。

On Sat, 13 Mar 2010 19:52:04 +0900
"fujioka" <qhtsige @ apost.plala.or.jp> wrote:

> 頂いたアドバイスの内、次を試しました。いずれもregular expression エラーとなります。
> 
> ^([0-9A-Za-z_\.'=%-]+)\.html$     -の位置を最後にする(%が無ければOK)
> ^([0-9A-Za-z_\.'=%" "-]+)\.html$     空白を””で囲む(%が無ければOK)
> 
> なお=.とも必要です。

やりたいことを実現するには、
RewriteRule "^([0-9A-Za-z\.'_ =-]+)\.html$" htmpage2.php?yspec=$1 [L]
で良いかと思います。これでcompile errorになる場合、
使っているApache等のバージョンを教えてください。

ダブルクォートで囲むのは「ルール」です。空白文字だけを囲むと、
RewriteRuleの1つ目のパラメータが^([0-9A-Za-z_\.'=%" で、
2つ目のパラメータが "-]+)\.html$ という妙なことになってしまいます。

> ^([0-9A-Za-z_\.'=%-]+)\.html$     -の位置を最後にする(%が無ければOK)
がREエラーという件は、このルールだけを指定していて、
この行が原因で出ているエラーでしょうか。

=を含むファイル名の扱いは、先のメールで2つ方法を書きましたが、
mod_rewriteで=を%3Dに置換するという方法もありますね。


-- 
笹尾 卓宏 @ P-strain <sasao @ p-strain.jp>



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