プロが教えるわが家の防犯対策術!

現在PHPでウェブアプリケーションを作成しています。
例えば
/public_html/userpage.php?username=hogehoge

というURLを
http://examle.com/
のように、バーチャルドメインで表示したいと考え…

DocumentRoot /public_html/userpage.php?username=hogehoge

と、試してみたのですが、DocumentRootに指定した値がフォルダでも、ファイルでさえ無いため、エラーが発生し正しく設定できません。

上記のような引数を渡してユーザページを表示するようなシステムにバーチャルドメインを適用するにはどうすればよいでしょうか?

おかしな質問で申し訳ありませんが、お返事頂けましたら幸いで御座います。

A 回答 (3件)

NameVirtualHost xxx.xxx.xxx.xxx:80


<VirtualHost xxx.xxx.xxx.xxx:80>
ServerName example.com
DocumentRoot パス/public_html
<Directory "パス/public_html">
Order allow, deny
Allow from all

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/userpage\.php$
RewriteCond %{QUERY_STRING} !^username=hogehoge$
RewriteRule ^(.*)$ /userpage.php?username=hogehoge [QSA,L]
<Directory>
</VirtualHost>

質問の内容をそのまま書くとこんな感じになります。(未検証です)
VirtualHost と mod_rewrite を使います。モジュールは導入済みとしてます。

xxx.xxx.xxx.xxx はサーバのListenしているIPなど、設定に合わせてください。
パスは public_html までのフルパスです。

で、*容赦なく* 全てのリクエストが userpage.php?username=hogehoge になります。

でも、多分 hogehoge って動的に変わるじゃないでしょうか?
URLのどこでそれを表現したいのかわからないので、そこんとこは適当に mod_rewrite でググって書き換えてください。

httpd.conf に rewrite の設定を書くと、編集するたびに apache の再起動が必要なので
AllowOverride を適切に設定して(テストするだけなら ALL でもいい)、
.htaccess にrewrite の設定を記述してもいいでしょう。

参考URL:http://httpd.apache.org/docs/1.3/mod/mod_rewrite …
    • good
    • 0

多分、「バーチャルドメイン」という言葉を間違って使っているような気がします。


「バーチャルドメイン」「バーチャルホスト」などの言葉を使わないで、やりたいことを出来るだけ細部を省略せずに、書いてみて下さい。

あと、普通、public_html というのは、ルートディレクトリではなく、各ユーザのホームディレクトリの下、つまり、~/public_html にあるものですが?
    • good
    • 0

>というURLを 

http://examle.com/のように、バーチャルドメインで表示したいと考え…
? バーチャルドメインでなく、バーチャルホストですよね。。。

httpd.confにバーチャルホストの設定を行えば良いですが。。。。

参考URLに、その設定例が載っているURLを記載しておきます。。

参考URL:http://www.tempest.jp/linux/httpd_conf.html
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!