人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

mod_rewrite について質問です。
あるディレクトリの .htaccess に

RewriteEngine on
RewriteRule ^([^\?\./]+)$ ?$1

を記述しています。

これでクエスチョンマークを省略した形でクエリを受け取ることはできました。

例:http://xxx.com/mylink/abcde にアクセスされた場合、mylink/index.cgiにて「abcde」をクエリとして受け取る

ただこの形ですと、例えば http://xxx.com/mylink/abcde.html にアクセスすると、直接URLを探しに行ってしまいます。

「abcde.html」という文字列を、ファイル名ではなくクエリとして受け取りたいのですが、そのようなことは可能でしょうか?

動的リソースはrewriteできないということも聞いたのですが、もし可能であればズバリのコードを教えて下さいますでしょうか。

ちなみに.htaccessを配置してあるディレクトリにはindex.cgi以外は他のファイルや下層ディレクトリなども一切設置することはありませんので、"この場合だけは実在のファイル(URL)に飛ばしたい"というようなことは一切考慮して頂かなくても結構です。

宜しくお願いします。m(_ _)m

●質問者: kamikage
●カテゴリ:コンピュータ インターネット
✍キーワード:.htaccess CGI HTML INDEX mod_rewrite
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● znz
●50ポイント

「[^\?\./]」で「?」と「.」と「/」以外の文字という意味なので、すべての場合にrewriteしたいのなら、任意の文字を意味する「.」を使って

RewriteRule ^(.+)$ ?$1

にすれば良いと思います。

◎質問者からの返答

ありがとうございます。今確認したのですが、どうもエラーになってしまいます・・・再度確認してみます。


2 ● くいっぱ
●35ポイント

こちらのURLを参照してみてください。

http://exam.su-jine.com/mod_rewrite/mod/rewrite.html


私もあまり深く存じているわけではないのですが、

DirectoryIndex index.php
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) index.php?u=$1

というようなパターンで、RewriteCondも併記してやるのがお作法のようです。

◎質問者からの返答

すみませんが意図することと違います・・・(涙)

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ