投稿日:2004年04月08日 作成鷹の巣

No.15602 httpd.confの設定(環境変数PATH_INFOでの取得方法)?



httpd.confの設定(環境変数PATH_INFOでの取得方法)?

No.15602 投稿時間:2004年04月08日(Thu) 00:36 投稿者名:php URL:

自宅サーバーに直接関係あることじゃないかもしれませんが
質問させて下さい。

~httpd.confの中身~
DirectoryIndex index.php

http://www.○○○.jp/aaa
として、「aaa」という環境変数PATH_INFOを取得しつつ、このURL
(http://www.○○○.jp/)にアクセスできるようにするには
どのような設定をしたら良いのでしょうか?
トップフォルダにはindex.phpが入っていますが
このままだと「aaa」ディレクトリがあると認識されて意図したように表示されません・・・
http://www.○○○.jp/index.php/aaa
これなら環境変数PATH_INFOで「aaa」が取得できます。

例えば
トップフォルダにはtest.phpが入っていて
http://www.○○○.jp/test.php/aaa
とすれば、環境変数PATH_INFOで「aaa」を取得できます。
これをindex.phpに代えてindex.phpのURLを省略した形で
「aaa」という値を取得したいのです。


mod_rewriteあたりでいろいろやれば出来そう。

No.15604 投稿時間:2004年04月08日(Thu) 05:56 投稿者名:APACHE URL:http://kemuri-net.dip.jp/~server/worm.txt

mod_rewriteあたりでいろいろやれば出来そう。


モジュールを作るとcannot stat `mod_rewrite.so': No such file or directoryというエラーが出る。

No.15615 投稿時間:2004年04月08日(Thu) 23:05 投稿者名:php URL:

> mod_rewriteあたりでいろいろやれば出来そう。

ご返答ありがとうございます。
自宅サーバについて初心者で余り分からないので、
ネット上でいろいろ情報を収集したところ、どうやらモジュールを
ロードする必要があることが分かりました。
それには「.so」モジュールを作らなければならないのですが、
このやり方だと次のようなエラーが出てしまいます(このやり方もそれを参考にしました・・・)

cd /usr/local/src/httpd-2.0.48/modules/mappers

[root@localhost mappers]# /usr/local/apache2/bin/apxs -c mod_rewrite.c
/usr/local/apache2/build/libtool --silent --mode=compile gcc -prefer-pic -DAP_H
AVE_DESIGNATED_INITIALIZER -DLINUX=2 -D_REENTRANT -D_XOPEN_SOURCE=500 -D_BSD_SOU
RCE -D_SVID_SOURCE -D_GNU_SOURCE -g -O2 -pthread -I/usr/local/apache2/include -
I/usr/local/apache2/include -I/usr/local/apache2/include -c -o mod_rewrite.l
o mod_rewrite.c && touch mod_rewrite.slo
/usr/local/apache2/build/libtool --silent --mode=link gcc -o mod_rewrite.la -rp
ath /usr/local/apache2/modules -module -avoid-version mod_rewrite.lo

[root@localhost mappers]# /usr/local/apache2/bin/apxs -i mod_rewrite.so
/usr/local/apache2/build/instdso.sh SH_LIBTOOL='/usr/local/apache2/build/libtool
' mod_rewrite.so /usr/local/apache2/modules
/usr/local/apache2/build/libtool --mode=install cp mod_rewrite.so /usr/local/apa
che2/modules/
cp mod_rewrite.so /usr/local/apache2/modules/mod_rewrite.so
cp: cannot stat `mod_rewrite.so': No such file or directory
apxs:Error: Command failed with rc=65536
.


mod_rewrite.soファイルがないようですが、
なぜこのようなことになるのでしょうか?


(動的リンク)オプションをつけて再構築。

No.15619 投稿時間:2004年04月09日(Fri) 08:38 投稿者名:stranger URL:

> > mod_rewriteあたりでいろいろやれば出来そう。
> > ご返答ありがとうございます。
> 自宅サーバについて初心者で余り分からないので、
> ネット上でいろいろ情報を収集したところ、どうやらモジュールを
> ロードする必要があることが分かりました。

rewrite.soは
apache2.0がバイナリの場合
windows用なら 動的にリンクされていると思います
httpd.confに記述があるか確認

linux(redhat9)でも動的にリンクされています
httpd.confに記述があるか確認

linuxでapache2.0をソースからいれている場合 ./configure で
--enable-rewrite(静的リンク)オプションまたは
--enable-rewrite=shared(動的リンク)オプションをつけて再構築


無事当初の目的通りのことができました。

No.15633 投稿時間:2004年04月10日(Sat) 02:24 投稿者名:php URL:

> > > mod_rewriteあたりでいろいろやれば出来そう。
> > > ご返答ありがとうございます。
> > 自宅サーバについて初心者で余り分からないので、
> > ネット上でいろいろ情報を収集したところ、どうやらモジュールを
> > ロードする必要があることが分かりました。
>
> rewrite.soは
> apache2.0がバイナリの場合
> windows用なら 動的にリンクされていると思います
> httpd.confに記述があるか確認
>
> linux(redhat9)でも動的にリンクされています
> httpd.confに記述があるか確認
>
> linuxでapache2.0をソースからいれている場合 ./configure で
> --enable-rewrite(静的リンク)オプションまたは
> --enable-rewrite=shared(動的リンク)オプションをつけて再構築

申し遅れてすいません。
こちらはredhat8の環境で作業しています。
そのhttpd.confの中にはなぜか「rewrite.so」の記述がなかったので
とりあえず静的リンクの方法で再構築しました。
そして無事当初の目的通りのことができました。
アドバイスを頂きありがとうざいました。


phpのpathinfoで取得したのではだめですか。

No.15605 投稿時間:2004年04月08日(Thu) 10:08 投稿者名:stranger URL:

> 自宅サーバーに直接関係あることじゃないかもしれませんが
> 質問させて下さい。
> > ~httpd.confの中身~
> DirectoryIndex index.php
> > http://www.○○○.jp/aaa
> として、「aaa」という環境変数PATH_INFOを取得しつつ、このURL
> (http://www.○○○.jp/)にアクセスできるようにするには
> どのような設定をしたら良いのでしょうか?
> トップフォルダにはindex.phpが入っていますが
> このままだと「aaa」ディレクトリがあると認識されて意図したように表示されません・・・
> http://www.○○○.jp/index.php/aaa
> これなら環境変数PATH_INFOで「aaa」が取得できます。
> > 例えば
> トップフォルダにはtest.phpが入っていて
> http://www.○○○.jp/test.php/aaa
> とすれば、環境変数PATH_INFOで「aaa」を取得できます。
> これをindex.phpに代えてindex.phpのURLを省略した形で
> 「aaa」という値を取得したいのです。

phpのpathinfoで取得したのではだめですか
index.phpのなかに特定のファイルのpathinfoを取得する構文を含める

http://manual.xwd.jp/function.pathinfo.html


|目次|掲示板|過去ログ目次|▲頁先頭|