[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 メーリングリストの案内