こんにちは。
現在、業務でmod_rewriteの設定をしているのですが、こまっています。
やりたい事は
http://localhost/hoge/aaa/bbb/
のアクセスがきた時に
http://localhost/hoge/?action_aaa_bbb_index=true
の内容を表示したいです。
但し、URLは http://localhost/hoge/aaa/bbb/ という感じです。
他のサイトで調べて、設定をしたのですがどうしても
http://localhost/hoge/aaa/bbb/
アクセスすると
http://localhost/hoge/以下のディレクトリィが表示されてしまいます。
また最後のオプションを[R]にすると表示はされますが
http://localhost/hoge/?action_aaa_bbb_index=true
にURLが書き換わってしまいます。
(これは当然なので、認識しています。)
以下、設定を記述します。
よろしくお願いします。
■環境 windows XP apache2.2
■記述箇所 httpd.conf
--------設定内容---------
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/hoge/([0-9A-Za-z]+)/([0-9A-Za-z]+)/?$ /hoge/?action_$1_$2_index=true [L]
AllowEncodedSlashes On
No.2ベストアンサー
- 回答日時:
どんなプログラムなのでしょうか。たとえば、index.php が
動作するのであれば、
RewriteRule ^/hoge/([0-9A-Za-z]+)/([0-9A-Za-z]+)/?$ /hoge/index.php?action_$1_$2_index=true [L]
のようにマッピングすればよいのではないでしょうか。
回答ありがとうございます!
ご指摘どおり index.php を指定したら動作しました。
リダイレクトで表示されたのでindex.phpは必要ないと思っていました。
大変勉強になりました。ありがとうございました。
No.3
- 回答日時:
既に解決されたようですが
#1に書いた ^/ と/無しの件について 日本Apacheユーザー会でのやり取りより要約
1.httpd.conf のグローバルセクション(Directoryコンテナの外)に記述 <=質問者さんはこれに該当しますね
^/ でマッチします
グローバルセクションに
<IfModule mod_rewrite.c>
rewrite、、、、、
</IfModule>
の場合も同じ
2.httpd.conf の<Directory コンテナ内に書いた場合
^/ にマッチしない
3. .htaccess に書いた場合
^/ にマッチしない
## と言うのが少なくとも現在のバージョン(2.0系なら2.0.63 1.3系なら1.3.41 2.2系は多分全て)の仕様のようです
但し過去のバージョンに置いては違う動作(.htaccessに記述しても ^/ にマッチするなど)も有るかもしれないらしいです
自分の環境でマッチするかどうかは DocumentRootに例えば test.htm などのFileを置き
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/test.htm
RewriteRule ^(.*)$ /test.htm?$1 [R]
と記述して http://hoge.example.com/a.htm などにアクセスし その結果が
http://hoge.example.com/test.htm?a.htm <= こうなれば ^/ にマッチしない
http://hoge.example.com/test.htm?/a.htm <= ^/ にマッチする
と言うことのようです。
回答欄をお借りしてつけたさせていただきました。
回答ありがとうございます!
自分がたまたまグローバルセクションに記述していた為、
マッチしていたんですね。
サンプルを探しながらやったのでそこまで意識できてませんでした。
ご指摘ありがとうございます。
大変勉強になりました。
No.1
- 回答日時:
RewriteRule ^/hoge/([0-9A-Za-z]+)/([0-9A-Za-z]+)/?$ /hoge/?action_$1_$2_index=true [L]
↓ /を消して
RewriteRule ^hoge/([0-9A-Za-z]+)/([0-9A-Za-z]+)/?$ /hoge/?action_$1_$2_index=true [L]
だとどうですか?
AllowEncodedSlashes On はクエリーに / が含まれた場合のことだからこの事とは関係ないはず(たぶん)
Apache1.3~2.2 までのマニュアルを確認しても
http://httpd.apache.org/docs/1.3/mod/mod_rewrite …
http://httpd.apache.org/docs/2.0/mod/mod_rewrite …
http://httpd.apache.org/docs/2.2/mod/mod_rewrite …
いずれも
RewriteRule ^oldstuff\.html$ newstuff.html
↑/無しで記述であり
RewriteRule ^/oldstuff\.html$ /newstuff.html
↑のように/付きではない
回答ありがとうございます。
先頭の^/は特に関係なかったようです。
ほかの方の設定をみさせていただいた感じ、ほとんどついていたのと、
^/を指定して開始を設定した方が、予想外のところでリライトかからずすむので良いかと思いつけました。
もう少し有効性を判断して検討したいと思います。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 10 バッチファイルの記述法とルールについてアドバイスをお願いいたします。 1 2022/04/13 10:50
- HTML・CSS 全部のアクセスを指定したページに転送させたい 2 2022/06/28 16:33
- PHP PHPを使って、別サイトの一部を取得して表示したいのです。。 1 2023/01/18 21:45
- JavaScript 指定したパスが現URLに含まれていたら特定要素を削除するJavascriptのコードを教えてください 2 2023/04/27 17:58
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- C言語・C++・C# プログラミングのペーパーテスト 実行結果を表示せよ #include <stdio.h> int h 1 2022/07/09 15:27
- JavaScript ifreamをリロードしたい 1 2022/05/03 16:15
- Perl perl このテキストファイルを簡単に配列に入れるには? 2 2022/04/27 20:24
- Excel(エクセル) ¥マークを含むパスの処理について(マクロ、または関数) 2 2022/12/25 02:11
- SQL Server ACCESSで3ファイルを結合して、表を作成するやり方を教えて下さい。 17 2022/08/15 20:34
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
至急 情報Ⅰ スマホにはドメイン...
-
リモートデスクトップ接続が頻...
-
YAHAMA RTXシリーズのコマンド...
-
【Windows10】自動構成IPv4 ア...
-
社内ネットワークの1台だけ接...
-
一台のサーバーに複数個のIPア...
-
【Hyper-Vの質問】ホストOS以外...
-
nslookupでIPが見つからない
-
USBの制限について
-
レジでピッとするやつ
-
http、httpsをブラウザで見る場...
-
社内ネットワークが繋がらなく...
-
回線を体系的に勉強する方法。 ...
-
他の人アイコンをタップすると...
-
OSI参照モデルの各層の役割がわ...
-
DHCPのリース期限が半分になっ...
-
tracertがすべてtimeoutする
-
chromebookの動画を共有する方法
-
複数のUSB接続のディスク(SSDや...
-
virtualboxの内部ネットワーク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
リモートデスクトップ接続が頻...
-
社内ネットワークの1台だけ接...
-
社内Wi-Fiについて 会社のWi-Fi...
-
YAHAMA RTXシリーズのコマンド...
-
【Windows10】自動構成IPv4 ア...
-
ネットワークトラブル監視ソフ...
-
DHCPのリース期限が半分になっ...
-
nslookupでIPが見つからない
-
他の人アイコンをタップすると...
-
MyスカパーIDの登録、メールア...
-
家庭内LANの2台のPC間で「ネッ...
-
リモートデスクトップでクライ...
-
GT/sをGB/sへの換算方法
-
syslog保存サーバーに蓄積する...
-
ファイルサーバーで毎回パスワ...
-
自作のサーバーPCが自宅内のネ...
-
【Hyper-Vの質問】ホストOS以外...
-
パソコンに詳しい人 d3dx9_42.d...
-
フリーWi-FiでEDGEだと時間切れ...
-
ルーターを冗長化するとPC側の...
おすすめ情報