2010年3月13日

[Apache-Users 7644].htaccess のrewriteルール

** Apache ユーザーズメーリングリスト **
** 注意:このメールへの返信は Apache-Users へ行きます **

藤岡です。 .htaccess のrewrite ルールについて教えてください。

次のurl1,url2の場合、Internal server errorとなり、所望の変換ができません。
error.logを見ると、どうも%や/文字が入る正規表現を変換することができないように見えます。
どんな対策が良いでしょうか。


要求されたURL1 http://localhost/Rosa_/'Matilda/'.html
変換したいURL1 http://localhost/Rosa_'Matilda'.html /記号を削除。

要求されたURL2 http://localhost/Anemone%20debilis.html
変換したいURL2 http://localhost/Anemone_debilis.html   %20を_記号に置き換える。


.htaccess
RewriteEngine on
RewriteBase /

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


error.log

^([0-9A-Za-z_.'=-%]+)\.html$ の場合--> '^([0-9A-Za-z_.'=-%]+)\\.html$'
^([0-9A-Za-z_.'=-\%]+)\.html$ の場合--> '^([0-9A-Za-z_.'=-\\%]+)\\.html$'
^([0-9A-Za-z_.'=-/]+)\.html$ の場合--> '^([0-9A-Za-z_.'=-/]+)\\.html$'
^([0-9A-Za-z_.'=-\/]+)\.html$ の場合--> '^([0-9A-Za-z_.'=-\\/]+)\\.html$'

上記では、すべて全文では次のようになるが、略して書いた。
[Sat Mar 13 12:12:52 2010] [alert] [client 127.0.0.1] D:/upload/.htaccess:
RewriteRule: cannot compile regular expression
'^([0-9A-Za-z_.'=-%]+)\\.html$'
--
入退会・変更・配送一時停止は以下へ
http://www.apache.jp/mailman/listinfo/apache-users


投稿者 xml-rpc : 2010年3月13日 12:41
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/94099
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。