質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

5489閲覧

nginxでPHPのGETパラメータ rewriteの方法

arumiya

総合スコア10

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2016/05/31 01:36

編集2016/05/31 03:46

server {
listen 80;
server_name sample.net;
root /var/www;
charset UTF-8;
#access_log /var/log/nginx/log/host.access.log main;
if ($args ~ "page=(.)") {
set $page $1;
# rewrite "^/news.php/?(.
)$" /page/$page/ permanent;
rewrite http://sample/page/$page/ last;
}
・・・・省略・・・・

http://sample.net/news.php?page=1 とアクセスが来たら
http://sample/page/1/に

http://sample.net/news.php?page=10だったら
http://sample/page/10/ とURLを書き換えたいのですがうまく行きません><

どうすればよろしいでしょうか?
回答お願いします。

##追記##
rewrite ^/news(.*) http://sample.net/page/$arg_page? permanent;

としたらURL書き換えができましたが、404 Not Foundとなってしまいます。サーバー以外に設定する箇所があるのでしょうか??

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

Query String を変数 $page に入れるところはいいと思います。

if ($args ~ "page=(.*)") { set $page $1; rewrite ^/news.php.*$ http://ホスト名/page/$page/? permanent; }

投稿2016/05/31 04:06

TaichiYanagiya

総合スコア12141

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

やりたいことあってますか?
普通は
http://sample/page/10/
だったら
http://sample.net/news.php?page=10
へ書き換えだと思うけど?

投稿2016/05/31 03:59

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

arumiya

2016/05/31 04:19

回答ありがとうございます。 サーバ内部では、http://sample.net/news.php?page=10 と処理して URLはhttp://sample/page/10/としたいのですが可能ですか? 自分が逆に考えてしまったのかな
退会済みユーザー

退会済みユーザー

2016/05/31 04:55

http://sample/page/10/ へアクセスが来たら、http://sample.net/news.php?page=10 のスクリプトを動かしたいということで、理解しました。 まず、アクセスの来るURLですが、`http://sample`のような形はとれません。ドメインとして成立する、`.net`までが必須です。 *ドメインの例示の場合、例示用の example.com を使用するほうが良いです。 あとはこちらを参考に動作を追えば、希望した動作にたどり着けるかと思います。 https://teratail.com/questions/35098
arumiya

2016/05/31 05:05

.net 書き忘れてました汗  いろいろ参考になりました。今日中に解決できそうです。 ありがとうございました。m(_ _)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問