[表示 : 全て 最新50 1-99 101- 201- 301- 2chのread.cgiへ]
Update time : 01/25 09:33 / Filesize : 120 KB / Number-of Response : 375
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【Apache】mod_rewriteについて語るスレ



1 名前:nobodyさん [02/06/11 19:29 ID:wH0rV3+D]
Apacheのモジュール『mod_rewrite』に関連するスレです。

基本的な内容は↓ページを読むこと。
japache.infoscience.co.jp/rewriteguide/
japache.infoscience.co.jp/japanese_1_3_6/manual/mod/mod_rewrite.html

それではマターリ逝きましょう。

44 名前:nobodyさん mailto:sage [03/08/16 17:52 ID:???]
やり方知ってるけど、教えない。
マニュアルとかその辺検索もしないで教えて君なんて相手にされない

45 名前:43 mailto:sage [03/08/16 19:57 ID:???]
マニュアルなどはgoogleで検索しましたが、駄目でした。
調べたところmod_rewriteが無いと判明しました(−−

46 名前:お気に入り集 ☆http://beauty.h.fc2.com/ [03/08/16 22:27 ID:grNQSJhA]
お気に入り集 ☆
beauty.h.fc2.com/


47 名前:nobodyさん mailto:sage [03/08/17 00:28 ID:???]
>>44
もしやあなたはきのう別のスレで If-Modified-Since: について
嘘をついていた人ですか?
もしそうであれば、あなたもエラそうに説教する前に
RFC なりドキュメントなりをちゃんと読んで理解した方がいいですよ。

48 名前:nobodyさん mailto:sage [03/08/17 02:06 ID:???]
↑アフォ?

49 名前:nobodyさん mailto:age [03/08/18 19:16 ID:???]
ほしゅ

50 名前:nobodyさん [03/11/07 22:11 ID:K7agUunN]
www.example.com/foo/bar/fuga/hoge/
にアクセスされた場合、実際には
www.example.com/index.php?cat=hoge
にアクセスしてるように表示させたいと思っています。
(要は、com/以下の、途中のパス名はどうでもよく、URIの最後の/と/の間の文字列を受け取って
実際には、www.example.com/index.php?cat=その文字列
を表示させたく思ってます。)
で、
RewriteRule ([^/]*)/?$ /index.php?cat=$1
としたら、うまくいきました。

ただ、そしたらこんどは、
www.example.com/phpMyAdmin/
みたいなものまでこれを解釈してしまうようになってしまいました・・
(そりゃそうだ)
で、たとえば「phpMyAdmin」「Analog」「xoops」の、
ディレクトリ配下の場合にアクセスされたときにだけ、
この「mod_rewriteを無効にするには、どうすればいいのでしょうか?


51 名前:nobodyさん mailto:sage [03/11/07 23:01 ID:???]
人妻、熟女、レズ、野外露出、複数プレイ、レイプ、
赤外線車中盗撮、トイレ盗撮、サウナ盗撮・・・
www.excitehole.com/

52 名前:50 mailto:sage [03/11/09 00:06 ID:???]
正規表現スレ逝ってきます



53 名前:50 [03/11/09 01:46 ID:8TU+xjrC]
すいません、私は>>50 ですが、別の問題で悩んでるので、
ここで書かせていただきます。(途中までは>>50と同じ文章ですが・・・)

www.example.com/foo/bar/fuga/hoge/
にアクセスされた場合、実際には
www.example.com/index.php?cat=hoge
にアクセスしてるように表示させたいと思っています。
(要は、com/以下の、途中のパス名はどうでもよく、URIの最後の/と/の間の文字列を受け取って
実際には、www.example.com/index.php?cat=その文字列
を表示させたく思ってます。)
で、
RewriteRule ([^/]*)/?$ /index.php?cat=$1
-------------------------------------------------------------

とやってうまくいったと思えたのですが、
どうも、無限ループしてしまっているようです。
1回だけこの「rewrite」を行い、以下、中止ということはできないでしょうか?
(P.S. MaxRedirects=numberというのがあるようですが、これだと、ここで指定した回数ループすると
500エラーになってしまうようです)

どなたか、お答え頂ければ幸いです。


54 名前:nobodyさん mailto:sage [03/11/17 02:10 ID:???]
>>50
RewriteCond %{REQUEST_URI} !/phpMyAdmin/(.*)$
RewriteCond %{REQUEST_URI} !/analog/(.*)$
RewriteCond %{REQUEST_URI} !/xoops/(.*)$
RewriteRule ([^/]*)/?$ /index.php?cat=$1 [L]

こんなでいけるとおもー。
無限ループがどこで発生してるかわからないけど、一応[L]で止めてる(と思う)。

しかし、豪勢な使い方。。

55 名前:nobodyさん mailto:age [04/01/31 09:42 ID:???]

大学のサーバーの 〜USER/public_html/ がデフォでは Index 表示出来ないのですが、
.htaccess で Index 表示させています。
が、管理者がタコなのか、/icons フォルダを設定していなくって、
Index 表示で ? マークがたくさん出ていて、イヤ〜んな感じ。Alias はとめられていたので、
mod_rewrite を使ってみようと思ったのですが、うまく行きません・・・
以下が状況です。

/icons --> /var/www にエイリアスされてるっぽい。
〜USER/public_html/.icons にアイコンの実体を置いた。
〜USER/public_html/.htaccess は以下の通り。

------------------------------------
Options +Indexes

RewriteEngine on
RewriteBase /icons
RewriteRule ^/icons/$ /home/USER/public_html/.icons/ [R]
------------------------------------

どうすればいいんでしょうか?教えてくりくり。

56 名前:nobodyさん mailto:sage [04/01/31 11:37 ID:???]
Alias と <Directory>コンテナで icon 設定できない?

57 名前:nobodyさん mailto:sage [04/01/31 12:25 ID:???]
/icons にアクセスされたときに読まれるのは icons の下の .htaccess だす。
~user/public_html/.htaccess が読まれるはずがあるわけないので、
おまいさんがどんな設定しても無意味だす。管理者にお願いすべし。

58 名前:55 mailto:age [04/01/31 13:50 ID:???]
>>56

Alias は止められてるって書いたじゃん。

>>57

おいらもそうかなと思ったんだけどさ、いくつかいじって行く中で・・
[Fri Jan 30 19:20:07 2004] [error] [client xxx.xxx.xxx.xxx] File does not exist: /var/www/icons^/home/USER/public_html/.icons
っていうのを出してて、なるほど、RewriteBase の外にアクセスできるようになれば、なんとかなりそう、と思ったんだけれど。どうかな?


59 名前:nobodyさん mailto:sage [04/01/31 22:17 ID:???]
いや、できたらセキュリティホールなので。
mod_autoindex の AddIcon とかを使ってアイコンの URL を変えるのが正道。

60 名前:58 mailto:sage [04/02/01 00:02 ID:???]
>>59
やってみた。

AddIconByType (IMG,/home/USER/public_html/.icons/image2.gif) image/*


[Sat Jan 31 09:49:29 2004] [error] [client xxx.xxx.xxx.xxx]
File does not exist: /opt/www/html/home/USER/public_html/.icons/image2.gif

つまりあれですね。DocRoot 外には出られないってことですね?・・・
でも 〜USER 下って、USER 権限で起動してるんじゃないんだ?
ちなみに今更ですが、HTTPD version は 1.3.27 です。

ってもうスレ違いっすね。
おとなしく管理者にメールします・・

61 名前:nobody [04/03/14 16:38 ID:+av6o+/D]
apache 2.0.48にて

携帯のキャリア別に(au,docomo,vodafone)というディレクトリを作成し
REMOTE_ADDRをもとにそれぞれのDIRへ振り分けたいと思っています。

210.169.40.0/24 なアドレスは
RewriteCond %{REMOTE_ADDR} 210\.169\.40\.*
な感じでいいと思うんですが

210.196.3.192/26 なアドレスはどう記述したらいいのでしょう?


すいませんが、教えてください。


62 名前:nobodyさん mailto:sage [04/03/14 17:42 ID:???]
>>61
.htaccess質問コーナー
pc2.2ch.net/test/read.cgi/hp/1065608009/



63 名前:nobody [04/03/15 00:16 ID:hT+Orm0+]
どもです。
やはり正規表現で地道に書いていくしかないのですね・・・
ありがとうございました。

64 名前:alex [04/05/05 13:53 ID:ma1zwts1]
共有サーバーでのhtaccessにおけるmod_rewriteの方法について教えてください。
文章が長いので二度に分けます。


現在、(仮の名称で)
www.example.com  (内部パスは/home/www/public_html/)
というサイトと別のサーバーである
www.example2.com  (内部パスは/home/www2/public_html/)
というサイトを経営しているとします。

www.example.com/php/とアクセスすると
------------------------------
RewriteEngine on
RewriteBase /
RewriteRule (.+)$ index.php?$1
------------------------------
という.htaccessの設定がルートに置かれているので
www.example.com/index.php?/php/
というユーザーから実際のURLは見えない内部アクセスとなり、
index.phpの内部では動的なフレーム転送を行っています。

ところが、
www.example.com/something/  (内部パスは/home/www/public_html/something/)
というディレクトリにフレーム転送したくないコンテンツがあるので、
------------------------------
RewriteRule /something(.+) something$1 [C]
------------------------------

65 名前:alex [04/05/05 13:54 ID:ma1zwts1]
という記述になり、先程と合わせて
------------------------------
RewriteEngine on
RewriteBase /
RewriteRule /something(.+) something$1 [C]
RewriteRule (.+)$ index.php?$1
------------------------------
とした所、
www.example.com
というアクセスや
www.example.com/something/
は正常に動作するのですが、
www.example.com/test/
というようなアクセスの場合表示されず、内部パス上でも
www.example.com/index.php?/test/
とならず、DirectoryIndexに基づく通常のアクセスである
www.example.com/index.php
というアクセスになっている事がわかりました。

発想を転換して、今度は404Errorを利用した環境変数のREQUEST_URIを参照して
フレーム転送する事を試した所、万事うまくいっている様に見えたのですが意外にも、
携帯端末では正常に表示する事ができません。(404 FILE NOT FOUNDと表示)

そこで、ご質問です。
どのようなRewriteRuleを記述すれば私の期待する動作となるのでしょうか?


66 名前:nobodyさん mailto:sage [04/05/05 14:32 ID:???]
>>64
.htaccess質問コーナー
pc5.2ch.net/test/read.cgi/hp/1065608009/

67 名前:alex [04/05/05 14:55 ID:ma1zwts1]
>>66
有り難うございます。いってきます。

68 名前:nobodyさん mailto:sage [04/07/16 16:17 ID:???]
次の場合、どのようにすればいいのでしょう?

hoge.com/***」の***が、先頭一致で(aaa/|bbb/)以外の場合に、
hoge.com/***をhoge.com/index.cgi?***に変換。
〔(aaa/|bbb/)の場合通常のリクエストと見なす〕
〔***は任意〕
Apacheのmod_rewriteで行い、記述は.htaccessで行う。

69 名前:nobodyさん mailto:sage [04/07/16 16:39 ID:???]
>>68
糞マルチは氏ね!

70 名前:nobodyさん [04/08/19 12:13 ID:6Qfzg0Ay]
apache1.3.27+tomcat4+mod_jk2を使用しています。
workers.propertiesは以下の様に設定しています。
[uri:*.do]

ここでmod_rewriteを使用して*.doへのアクセスをすべてHTTPSにrewriteしようと
しているのですが、rewriteできません。
以下の通り全リクエストをrewriteする設定にすると*.do以外はrewriteされます。(img等)

rewrite前にmod_jk2により転送されてしまっているのではと思っているのですが、
このあたりの情報をご存知でしたら教えてください。


71 名前:nobodyさん mailto:sage [04/08/25 19:08 ID:???]
> rewrite前にmod_jk2により転送されてしまっているのではと思っているのですが、
> このあたりの情報をご存知でしたら教えてください。
その通り。Tomcat 側で SSL の設定すれば?

72 名前:nobodyさん mailto:sage [04/09/02 03:12 ID:???]
現在「hoge.com/index.htmlにてホームページが公開されてます。
このindex.htmlには画像が貼ってあって、<img src=hoge.com/img/fuga.jpg>などと
絶対パスで書いてあり、たくさんあります。
このたびドメインが変わり、hoge.jp/index.htmlで公開するのですが
imgが絶対パスで書いてあるので画像が表示できません。
事情によりソースは編集できないのでrewriteでなんとかしようと思ったのですが、
まったく検討つきません。
どのようなrewriteruleにすればいいのでしょうか?



73 名前:nobodyさん mailto:sage [04/09/02 12:56 ID:???]
>>72
.htaccess質問コーナー Part2
pc5.2ch.net/test/read.cgi/hp/1084861566/

74 名前:nobodyさん mailto:sage [04/09/02 21:35 ID:???]
>>72
やるとしても新hoge.jpではなく旧hoge.comの方で設定する必要があり。
それができないのならば無理。
ソースを書き換えるスクリプトを作る方がてっとりばやい。

75 名前:nobodyさん mailto:sage [04/09/03 01:32 ID:???]
>>74
ありがとうございます。
ソースを書き換えるようおねがいしてみます。

76 名前:nobodyさん mailto:sage [05/01/09 21:13:14 ID:???]
rewriteで「/hoge/」を「nph-hoge.cgi」に移動させています。
nph-hoge.cgiはPerlで書かれたnphスクリプトで、「HTTP/1.1 200 OK」などヘッダ情報も含まれています。
nph-hoge.cgiに直接アクセスする場合には「nph-hoge.cgiの内容。」と表示された問題ないのですが、/hoge/にアクセスすると、
「nph-hoge.cgiの内容。HTTP/1.1 200 OK
Date: Sun, 09 Jan 2005 12:10:52 GMT
Server: Apache
Content-Length: 0
Connection: close
Content-Type: text/plain

」と表示されてしまいます。
これを表示させないようにするにはどうすれば良いでしょうか?

77 名前:nobodyさん mailto:sage [05/01/10 03:31:07 ID:???]
Content-Type: text/plain


78 名前:76 mailto:sage [05/01/11 21:25:19 ID:???]
追記。

コードと結果(ブラウザで確認できるソース部分のみ)は下記のとおりです。
情報おねがいします

↓コード
--
#!/usr/local/bin/perl -w
use strict;
print('HTTP/1.0 200 OK'."\n");
print('Content-Type: text/plain; charset=Shift_JIS'."\n");
print("\n");
print("Test");
exit(0);
--

↓結果
--
TestHTTP/1.1 200 OK
Date: Tue, 11 Jan 2005 12:22:19 GMT
Server: Apache
Content-Length: 0
Connection: close
Content-Type: text/plain

--


79 名前:76 mailto:sage [05/01/11 21:28:26 ID:???]
>>77
print('Content-Type: text/plain; charset=Shift_JIS'."\n");
↓に変更して実行しても駄目でした
print('Content-Type: text/html; charset=Shift_JIS'."\n");

--
TestHTTP/1.1 200 OK
Date: Tue, 11 Jan 2005 12:26:37 GMT
Server: Apache
Content-Length: 0
Connection: close
Content-Type: text/plain

--
なんでContent-Type: text/plainなんだろう

80 名前:nobodyさん mailto:sage [05/01/12 00:28:58 ID:???]
Web制作板の.htaccessスレのテンプレを見れ

81 名前:76 mailto:sage [05/01/13 14:33:05 ID:???]
>>80
見ても分かりませんでしたorz

82 名前:nobodyさん mailto:sage [05/01/13 14:35:11 ID:???]
>>81
じゃ、潔く諦めろ



83 名前:76 mailto:sage [05/01/13 16:05:37 ID:???]
>>82
nphにヒットする部分は一通り読んだつもりだけど、この問題に関係しそうなところが見つかりませんでした。
大体は30*redirect関係で・・・
諦めきれないので、誰か情報お願いします

RewriteRule ^test$ nph-test.cgi [T=application/x-httpd-cgi,L]
こんな設定にしてるけど間違ってるから動かないんだよなorz

84 名前:nobodyさん mailto:sage [05/01/13 22:38:42 ID:???]
ふんにゃか ふんにゃか

85 名前:nobodyさん mailto:age [05/01/13 22:51:11 ID:???]
お揚げ

86 名前:nobodyさん mailto:sage [05/01/14 22:57:22 ID:???]
>>83
WindowsXP+Apache1.3.27でやってみたけど、特に問題なかったよ。

87 名前:83 mailto:sage [05/01/14 23:54:32 ID:???]
>>86
鯖がFreeBSD+Apache2なのがいけないのかなぁ。。。
でも、レン鯖だからどうにもできないorz

>>80さんのはどこを見れば・・・

88 名前:nobodyさん mailto:sage [05/01/15 00:11:19 ID:???]
>>87
>>1から全部熟読していけばいいんじゃね?
音読しろとは言わないからさ。

89 名前:83 mailto:sage [05/01/15 00:39:51 ID:???]
>>88
スレの>>1のサイトにあるnph関係の部分は目を通しました。

90 名前:age mailto:age [05/01/15 23:09:13 ID:???]
age

91 名前:nobodyさん mailto:sage [05/01/20 14:14:28 ID:???]
質問させてください。
public_html以下のすべての.cgiを.htmlでアクセスさせたいのですが
どのように記述したらいいのでしょうか?
あと、.cgiにアクセスしても表示できないようにしたいのです。
よろしくおねがいします。

92 名前:nobodyさん mailto:sage [05/01/20 14:17:52 ID:???]
あ、すべてのじゃなくてindex.cgiだけindex.htmlでアクセスさせたいです。
m(_ _)m
よろしくおねがいします。



93 名前:nobodyさん mailto:sage [05/01/20 14:52:55 ID:???]
>>91
.htaccess質問コーナー Part3
pc5.2ch.net/test/read.cgi/hp/1105439192/

94 名前:nobodyさん mailto:sage [05/01/22 11:50:33 ID:???]
mod_rewriteでもつかえばいいんじゃ?

95 名前:nobodyさん [05/02/06 15:47:21 ID:Vt8tOhSv]
www.example.com/hogehoge/hage=hage/fuga123fuga/

www.example.com/main.php?hogehoge/hage=hage/fuga123fuga/

とするにはどう書けばいいんでしょうか?

96 名前:nobodyさん mailto:sage [05/02/06 15:54:47 ID:???]
>>95
.htaccess質問コーナー Part3
pc5.2ch.net/test/read.cgi/hp/1105439192/

97 名前:95 [05/02/19 16:09:31 ID:TAHykHoC]
>>96さま
すいません。そっちできいてもレスがなかったです。

どなたか教えていただけないでしょうか?


98 名前:nobodyさん mailto:sage [05/02/19 21:03:00 ID:???]
>>97
そっちのテンプレのサイトを見ればわかるのに何もせずに聞くからスルーされる

99 名前:nobodyさん mailto:sage [05/02/19 21:04:55 ID:???]
更に言うならわからんのならカッコつけることばかり考えずに
そのままのURLで書け

100 名前:nobodyさん [05/02/26 09:13:31 ID:LIYJX+3j]
#mod_rewrite
RewriteEngine on
RewriteRule ([^/]*)/?$ /index.php?cat=$1
RewriteCond %{REQUEST_URI} !/phpMyAdmin/(.*)$
RewriteCond %{REQUEST_URI} !/webmin/(.*)$
RewriteRule ([^/]*)/?$ /index.php?cat=$1 [L]

としているのですが、URIに「.php」または「.inc」の文字が含まれている場合は、
上記のmod_rewriteを無視する、というのはどう書けばいいのでしょうか?

よろしくお願いします。

101 名前:nobodyさん mailto:sage [05/02/26 11:47:37 ID:???]
>100
正規表現のお勉強はどこまで進んだの?

102 名前:100 [05/02/26 14:55:39 ID:LIYJX+3j]
正規表現がキモでしょうか?

#mod_rewrite
RewriteEngine on
RewriteRule ([^/]*)/?$ /index.php?cat=$1
RewriteCond %{REQUEST_URI} !/phpMyAdmin/(.*)$
RewriteCond %{REQUEST_URI} !/webmin/(.*)$
RewriteCond %{REQUEST_URI} !/\.php/$
RewriteCond %{REQUEST_URI} !/\.inc/$
RewriteRule ([^/]*)/?$ /index.php?cat=$1 [L]
とやってもうまくいかなかったもので、
(.phpで終わるURIにアクセスすると、
intermnal server error)になってしまうものでして




103 名前:nobodyさん mailto:sage [05/02/26 16:56:14 ID:???]
!/\.php/$ こういうのは !\.php とかに書き直せばいーじゃな〜い?

104 名前:100 [05/02/26 19:11:26 ID:LIYJX+3j]
>>103
下のようにやっても、example.com/phpinfo.php が表示できないです・・・・
#mod_rewrite
RewriteEngine on
RewriteRule ([^/]*)/?$ /index.php?cat=$1
RewriteCond %{REQUEST_URI} !/phpMyAdmin/(.*)$
RewriteCond %{REQUEST_URI} !/webmin/(.*)$
RewriteCond %{REQUEST_URI} !\.php
RewriteCond %{REQUEST_URI} !\.inc
RewriteRule ([^/]*)/?$ /index.php?cat=$1 [L]

105 名前:103 mailto:sage [05/02/26 19:25:22 ID:???]
RewriteCond がOR条件なら、末尾に [OR] じゃな〜い?

106 名前:100 [05/02/27 03:30:20 ID:XqwD1Bfz]
いや、phpMyAdminでもwebminでもなく、拡張子がphpとかincとか入ってないものだけ、
RewriteRule ([^/]*)/?$ /index.php?cat=$1 [L]
をやりたいので、AND条件だと思うのですが、、、勘違いしてます?

107 名前:103 mailto:sage [05/02/27 13:38:08 ID:???]
拡張子が .php で、且つ .inc という2つの拡張子を同時に持ち合わせている
ものが存在すれば確かに AND条件じゃな〜い?

108 名前:100 [05/02/27 18:48:34 ID:XqwD1Bfz]
なんか、問題をわけようかと思って、↓にしたら、だめでした、、
#mod_rewrite
RewriteEngine on

RewriteRule ^example.com$ example.com/ [R]
RewriteRule ^example.com/(.*)$ example.com/index.php/$1

とやると、
example.com/hoge
が404 not foundになってしまいます。

自分の意図としては、
example.com/index.php/hoge
と解釈され、
index.phpのなかで$_SERVER['PATH_INFO'](この例だと「/hoge」)を
操作したいのですが・・・


109 名前:nobodyさん mailto:sage [05/02/28 01:06:50 ID:???]
AcceptPathInfo On

110 名前:nobodyさん [05/03/04 03:42:48 ID:3xlEv0k9]
#mod_rewrite
RewriteEngine on

RewriteCond $0 !^/index\.php
RewriteRule ^.*$ /index.php$0

RewriteCond %{REQUEST_URI} !^/phpMyAdmin(.*)$
RewriteCond %{REQUEST_URI} !\.txt$
RewriteCond %{REQUEST_URI} !\.wml$
RewriteCond %{REQUEST_URI} !\.hdml$
RewriteCond %{REQUEST_URI} !\.html$
RewriteCond %{REQUEST_URI} !\.xhtml$
RewriteCond %{REQUEST_URI} !\.php$
RewriteCond %{REQUEST_URI} !\.inc$
RewriteCond %{REQUEST_URI} !\.html$
RewriteCond %{REQUEST_URI} !\.txt$
#RewriteCond %{REQUEST_URI} !\.gif$
#RewriteCond %{REQUEST_URI} !\.jpg$
#RewriteCond %{REQUEST_URI} !\.jepg$
#RewriteCond %{REQUEST_URI} !\.bmp$
#RewriteCond %{REQUEST_URI} !\.png$

RewriteRule ^example.com$ example.com/ [R]
RewriteRule ^example.com/(.*)$ example.com/index.php/$1

ってやったら、/phpinfo.php(なかみはphpinfo関数のみ)が
RewriteRule ^example.com/(.*)$ example.com/index.php/$1にひかかかってしまいます。
どこが問題なのでしょうか?
あと、gifに対しては、上記の記述でただしいのでしょうか?

111 名前:110 [05/03/04 04:52:45 ID:3xlEv0k9]
まちがえました。これです。で、ちと質問かえさせてください。
下記で、example.com/admin/にアクセスすると、
RewriteCond %{REQUEST_URI} "!/admin" にひっかかって、URL書き換えはおきないはずなのですが、
なぜか起きてしまってます。どなたか教えていただければ幸いです。
#mod_rewrite
RewriteEngine on

RewriteCond %{REQUEST_URI} "!/phpMyAdmin"
RewriteCond %{REQUEST_URI} "!/webmin"
RewriteCond %{REQUEST_URI} "!/admin"
RewriteCond %{REQUEST_URI} "!/client"
RewriteCond %{REQUEST_URI} !\.js$
RewriteCond %{REQUEST_URI} !\.css$
RewriteCond %{REQUEST_URI} !\.txt$
RewriteCond %{REQUEST_URI} !\.wml$
RewriteCond %{REQUEST_URI} !\.hdml$
RewriteCond %{REQUEST_URI} !\.html$
RewriteCond %{REQUEST_URI} !\.xhtml$
RewriteCond %{REQUEST_URI} !\.php$
RewriteCond %{REQUEST_URI} !\.inc$
RewriteCond %{REQUEST_URI} !\.html$
RewriteCond %{REQUEST_URI} !\.txt$
RewriteCond %{REQUEST_URI} !\.gif$
RewriteCond %{REQUEST_URI} !\.jpg$
RewriteCond %{REQUEST_URI} !\.jepg$
RewriteCond %{REQUEST_URI} !\.bmp$
RewriteCond %{REQUEST_URI} !\.png$

RewriteCond $0 !^/index\.php
RewriteRule ^.*$ /index.php$0
RewriteRule ^example.com$ example.com/ [R]
RewriteRule ^example.com/(.*)$ example.com/index.php/$1

112 名前:nobodyさん mailto:sage [05/03/11 14:08:18 ID:???]
RewriteEngine On
RewriteCond %{REMOTE_HOST} !\.jp$ [NC,OR]
RewriteCond %{REMOTE_HOST} !\.bbtec\.net$ [NC,OR]
RewriteCond DUMMY CONDITION
RewriteRule index\.html$ - [F]

こんなかんじでJPドメインとY!BB以外はindex.htmlにアクセスできないようにしているのだけど、
.comなどの禁止されているドメインでアクセスすると403のページには飛ぶけど、
ステータスは200なようなのです。
403を返したいのですが、どう書けばいいでしょうか?

14:01:24 nfo>Winsock 2.2
14:01:36 suc>sample.infoが見つかりました
14:01:36 suc>sample.info(255.255.255.0):80にconnect成功しました
14:01:36 rtn>サーバへリクエスト送信
14:01:36 cmd>GET /index.html HTTP/1.0
14:01:36 cmd>Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*
14:01:36 cmd>Accept-Charset: iso-8859-1,*,utf-8
14:01:36 cmd>Accept-Encoding: gzip
14:01:36 cmd>Accept-Language: en, ja
14:01:36 cmd>Connection: close
14:01:36 cmd>Host: sample.info
14:01:36 cmd>User-Agent: Mozilla/4.05 [en] (Win95; I)
14:01:36 rtn>サーバからのレスポンス
14:01:36 res>HTTP/1.1 200 OK
14:01:36 res>Date: Fri, 11 Mar 2005 05:01:40 GMT
14:01:36 res>Server: Apache/1.3.33 (Unix)
14:01:36 res>Content-Type: text/html;charset=Shift_JIS
14:01:36 res>Content-Length: 2260
14:01:36 res>Connection: close
14:01:36 nfo>sample.infoから切断します



113 名前:nobodyさん mailto:sage [05/03/11 15:40:36 ID:???]
RewriteRule ~([^/])+/([^/]) ?p=$1&q=$2
なら動くんですけど
RewriteRule ~([^/])+/([^/])/([^/]) ?p=$1&q=$2&m=$3
となるとサーバーが見つかりませんになります。
試行錯誤した結果、$nのnが3以上のものでこうなることがわかったのですが、
このようになる制限はあるのですか?ローカルではエラーがでないのに
XREAに置いたとたんエラーがでるようになりました。

114 名前:nobodyさん [05/03/12 17:48:37 ID:dOpkRpqt]
独り言です。apache2.0でのことです。
apacheの./configureで--enable-module=allにしていてhttpd2.0にmod_rewriteをDSOで組み込みたい↓

httpd -lでmod_so.cが入ってることを確認。
mod_rewrite.cがあるディレクトリに移動
#/usr/local/apache2/bin/apxs -c mod_rewrite.c
#/usr/local/apache2/bin/apxs -i -a -n rewrite mod_rewrite.la
2行目のコマンドで.soファイルがないと言われるので、同ディレクトリで
#gcc -shared -o mod_rewrite.so mod_rewrite.o -Wc,-Wall -L/usr/local/lib -Llib
で無理やり.soファイル作成。あとはできた.soファイルをapacheのmoduleにcpしてconfファイルに
LoadModuleの行を追加。apache再起動→完璧

115 名前:age [05/03/12 17:51:23 ID:dOpkRpqt]
↑続き。
これで1日半潰しました。悩んでる人、参考にしてちょ。
httpdの2.0だとAdd_Moduleの行はいらないのかしら?
いらなくて動いたんだけど、、、。

116 名前:nobodyさん mailto:sage [2005/03/21(月) 09:28:11 ID:???]
>>113
XREAのサポ板になんか書かれてた記憶がある

>>115
2からはAdd_Moduleがなくても問題ないよ

117 名前:nobodyさん [2005/03/22(火) 19:14:14 ID:P/+BRSxP]

nn

118 名前:nobodyさん [2005/03/22(火) 19:22:05 ID:P/+BRSxP]

なんかわからんなー。

httpd.conf内に、

RewriteEngine On
RewriteRule ^/cgi/([0-9A-Za-z]+)/([0-9A-Za-z]+)/$ /cgi/$1.cgi?com=$2 [L]


上記のように記述してみたが、思うような動作せず(リダイレクトはするが、$2の引数がうまくいかず)。
で、記述内容を変えてみたんだが、どうも反映されていない・・・。
さらに、コメントアウトしてみたが、おもいっきりリダイレクトしてるし???

ザット、ググッてみるものの情報みつからず、
誰か助けて。

119 名前:nobodyさん mailto:sage [2005/03/23(水) 04:33:05 ID:???]

自己レス

まず、あまり深く追いかけていないんだが、
MultiViews が、なんやら影響をおよぼしている様子・・・。

後、つくづく自分が情けなくなるが、
下記の中の正規表現で、[0-9A-Za-z]としているにもかかわらず、
ファイル名に、'_'使っているし・・・。

> RewriteEngine On
> RewriteRule ^/cgi/([0-9A-Za-z]+)/([0-9A-Za-z]+)/$ /cgi/$1.cgi?com=$2 [L]

以上2点修正して、意図する動作となりました。
とりあえず、解決。

120 名前:nobodyさん mailto:sage [2005/03/25(金) 17:06:25 ID:???]
さくらの鯖では
使えません!

鬱...

121 名前:nobodyさん mailto:sage [2005/03/25(金) 17:52:59 ID:???]
>>120
4月6日から使えます

122 名前:nobodyさん mailto:sage [2005/03/25(金) 22:35:34 ID:???]
>>121
そうみたいですね。
待ち望んでいた日が遂に...
って感じです。



123 名前:nobodyさん [2005/03/26(土) 13:01:03 ID:2ysQFKh3]
すみませんが...

hoge.com/hoge/xxxxx
hoge.com/hoge/test.cgi?xxxxx
までは、
RewriteEngine on
RewriteRule (.+)$ test.cgi?$1 [L]
で実現できましたが、
hoge.com/hoge/xxxxx?zzzzz
hoge.com/hoge/test.cgi?xxxxx?zzzzz
や%2Fなどができません。
(test.cgiは、$ENV{'QUERY_STRING'}で取ってるから対応しています。)

どうかお力を貸してください...

124 名前:nobodyさん mailto:sage [2005/03/27(日) 12:31:30 ID:???]
>>123
.htaccess質問コーナー Part3
pc5.2ch.net/test/read.cgi/hp/1105439192/

125 名前:nobodyさん mailto:sage [2005/03/31(木) 15:39:06 ID:???]
ヒント:$ENV{'REQUEST_URI'}

126 名前:nobodyさん mailto:age [2005/04/10(日) 14:34:04 ID:???]
さくらの共用スタンダードで
XOOPSでつくるサイトを
静的に見せる方法が分からない。

プログラム全くの素人だけど
でも、XOOPSで検索エンジンに引っかかるサイトが
作りたいわけなんだけど...

グーグルで調べてみたけど、
mod_rewrite使う方法だということが分かったが
どういうところを編集するのが分からんわけで。

127 名前:nobodyさん mailto:sage [2005/04/10(日) 14:39:45 ID:???]
ええけつしとるのぉ(*´Д`)ハァハァ
219.57.24.78/
219.57.24.78/~ss.jpg
OMOIKANE/
OMOIKANE/~ss.jpg


128 名前:nobodyさん [2005/05/09(月) 23:38:57 ID:rb2ewZOk]
WIN版のApache 1.3.33 です。

同一ホスト内だと問題ないんですが、書き換え先を外のドメインにするとうまくいきません。


AAA.com/hoge.html をクリックしたときに表示される内容は別ドメインにおいてある

BBB.com/hoge.html

にしたいのですが、Apacheが locationヘッダを吐くのでリダイレクトとなってしまいブラウザに

BBB.com/hoge.html

が表示されてしまいます。

下記の記述でなにがまずいのでしょうか? よろしくお願いします


RewriteEngine on
RewriteRule /(.*)$ BBB.com/$1 [L]


129 名前:nobodyさん [2005/05/10(火) 00:13:28 ID:0h89RmHc]
ZD218022.ppp.dion.ne.jp/
うぇwwwwwwwwwうはっwwwっおkwwwうぇwww
うはっwwwっうぇうぇwwwうぇwwwwww
wwwwwwwwwwwwwwwwwwwwwwwww

130 名前:nobodyさん mailto:sage [2005/05/10(火) 07:33:24 ID:???]
>>128
http上ドメイン名が変われば(別のhttpサーバに変えるには)リダイレクトしないと無理でしょう
コレは無理 ブラウザ->Apache(1)->Apache(2)->ブラウザ

131 名前:nobodyさん [2005/05/10(火) 18:19:16 ID:GC3gP9kT]
>>130
ありがとうございます。やはり駄目みたいですね。
mod_proxyかませるしかないか・・・

132 名前:nobodyさん [2005/06/02(木) 00:10:54 ID:7p4TKpYJ]
DirectoryIndex hoge.php
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9A-Za-z]+)/([0-9A-Za-z)]+)\.html$ hoge.php?var1=$1&var2=$2 [L]

------------------------------------------------------------------------------

...../test1/test2.html という仮想アドレスにアクセスしてきた
ユーザに対して、hoge.php?var1=test1&var2=test2
の結果を返したいので、上記のように.htaccessに書きましたが、
..../test2/test2.htmlにアクセスするとページがありませんエラーに
なります。他鯖だとこれでOKなのですが、さくらという鯖だと無理です。
さくら特有の何か?があるのか。上のような簡単なものでも
アパッチのバージョンが違うと、動作しない。なんてことがあるのでしょうか?


エロイ人、どうか教えて下さい。



133 名前:nobodyさん mailto:sage [2005/06/02(木) 06:47:17 ID:???]
([0-9A-Za-z)]+


134 名前:132 [2005/06/02(木) 20:34:15 ID:7p4TKpYJ]
Apache/1.3.33 Server
ですが、どうもうまくうごきません。

>>133
ありがとうございます。
そのようにやってみましたが、ダメみたいです。

さくらというレンタル鯖は
同じサイトでも2つのアドレスがあります。

一つは独自ドメイン。
もう一つは http://○○.sakura.ne.jp/というアドレスです。
こういうことも関係してエラーになるんだろうか・・・

135 名前:nobodyさん [2005/07/05(火) 01:22:50 ID:netfphaS]
通常の使い方とは逆に、

search.cgi?dir=hoge&file=foo

のようなパラメータ付きのURLを

/hoge/foo/

のように書き換えたいんですが、これではうまくいきません。

RewriteRule ^search\.cgi\?dir=(.*)&file=(.*)$ /$1/$2/

いろいろ試しても ? が出てきた時点でマッチしないように思います。
ご存知の方、ぜひご教示お願い致します。

136 名前:nobodyさん mailto:sage [2005/07/05(火) 23:37:37 ID:???]
ルールの左右逆じゃね?


137 名前:135 mailto:sage [2005/07/06(水) 01:13:05 ID:???]
>>136
はい、通常のmod_rewrite利用法とは逆の書き換えを
実現したいんです。

/hoge/foo/ を search.cgi?dir=hoge&file=foo みたいな
書き換えはきちんと動作するサーバ環境です。

気長にお待ちしております。

138 名前:nobodyさん [2005/07/15(金) 10:24:40 ID:yoPQBliE]
hogehoge/?123

hogehoge/123

に書き換えたいのですが、?に正規表現設定をマッチさせることができません。
ご教授願います。

139 名前:nobodyさん mailto:sage [2005/07/16(土) 10:25:48 ID:???]
>>138
\?じゃないの?

140 名前:nobodyさん [2005/08/05(金) 23:22:02 ID:euh07aXu]
こんばんは。ドメイン直下のディレクトリをキーに検索結果を
表示する書き換えを行いました。

RewriteRule ^([^/]+)/$ /search.cgi?key=$1 [L]

/hoge/ でアクセスすると search.cgi?key=hoge を返します。

続いて /hoge のようにディレクトリにスラッシュがない場合に、
スラッシュを補完しようと思って、以下のように書き換えると
無限ループを起こします。

RewriteRule ^([^/]+)$ /$1/ [R=301,L]

どう記述したら良いでしょうか。ご教示お願いいたします。

141 名前:nobodyさん mailto:sage [2005/08/25(木) 01:01:54 ID:???]
>>140
Apache はデフォルトで / 無しのリクエストに対して 301 を返し / を補完させるようになっている。
不要。

142 名前:nobodyさん mailto:  [2005/08/25(木) 09:50:51 ID:???]
例えば
***.com/~test/index.php?id=10

というURLを

***.com/~test/10.html

と言う風にするには

RewriteEngine on
RewriteRule ^/~test/([0-9A-Za-z)]+)\.html$ /~test/index.php?id=$1 [L]

と書けばいいんですよね?しかし、表示されません・・。
リダイレクトとか他のアクションの場合は動くので、サーバやmod_rewriteに
問題があるとは考えられません・・。書き方がおかしいのでしょうか?



143 名前:nobodyさん mailto:sage [2005/08/25(木) 15:27:54 ID:???]
すみません、mod_rewrite で以下のような変換は可能でしょうか?

/a/1/b/2/c/3/d/4/e/5.html

/index.php?a=1&b=2&c=3&d=4&e=5

パラメータ数は、可変にしたいのですが・・・

144 名前:nobodyさん mailto:sage [2005/08/27(土) 18:47:47 ID:???]
>>143
mod_rewriteじゃ難しいかもね。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<120KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef