- 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 それではマターリ逝きましょう。
- 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じゃ難しいかもね。
- 145 名前:nobodyさん mailto:sage [2005/08/28(日) 11:49:42 ID:???]
- >>143
これでどうよ。 俺のローカルでは動いたが。 RewriteEngine On RewriteRule ^a/([0-9]+)/b/([0-9]+)/c/([0-9]+)/d/([0-9]+)/e/([0-9]+)\.html$ /index.php?a=$1&b=$2&c=$3&d=$4&e=$5 [L] ちなみに、改行するなよ。 無保証でヨロ。
- 146 名前:nobodyさん mailto:sage [2005/08/28(日) 12:31:26 ID:???]
- >>145
あんたいい奴だな。けど143の質問ちゃんと読んでないよ。 ある程度パラメータ数の上限を決めて、個数ごとに145みたいなRewriteRuleを 書くしかないと思う。>>143
- 147 名前:nobodyさん mailto:sage [2005/08/28(日) 13:36:40 ID:???]
- RewriteRule ^(([a-z]/[0-9]/?)*)\.html$ /index.php/$1 [L]
とやってPHP側で $_SERVER['PATH_INFO'] を分解するくらいしか・・・
- 148 名前:nobodyさん mailto:sage [2005/08/28(日) 14:25:19 ID:???]
- 不定個数のパラメータ名をインクリメントしていくのを
mod_rewrite の正規表現だけでやれと言われると確かに厳しい mod_perl で PerlTransHandler あたりをフックしてちゃちゃっと書き換えるなら割と楽にできる
- 149 名前:nobodyさん mailto:sage [2005/08/28(日) 16:29:14 ID:???]
- >>143 です。
いろいろレス感謝です。 パラメータの a、b、c・・・ は固定ではなく、他の文字に変わることが あります。例えば、page、target などです。 >>146 やはりそれしかないでしょうか。 mod_rewrite でループ処理のような形でどうにか出来れば いいかなと思ったのですが。 とりあえず、こんな感じのを沢山書こうとしています。 RewriteRule ^(.*)/(.*)/(.*)/(.*)\.html$ index.php?$1=$2&$3=$4 [L] RewriteRule ^(.*)/(.*)\.html$ index.php?$1=$2 [L]
- 150 名前:147 mailto:sage [2005/08/28(日) 17:47:22 ID:???]
- >>149
そういや[N]があったな、忘れてた RewriteRule ^([a-z0-9]+)/([a-z0-9]+)\.html index.php?$1=$2 [L,NC,QSA] RewriteRule ^([a-z0-9]+)/([a-z0-9]+)/(.+)\.html $3.html?$1=$2 [N,NC,QSA]
- 151 名前:nobodyさん mailto:sage [2005/08/28(日) 19:23:03 ID:???]
- RewriteMap 使えば?
- 152 名前:nobodyさん mailto:sage [2005/08/29(月) 21:53:41 ID:???]
- RewriteCond で OR な条件を指定する際に
RewriteCond %{HTTP_HOST} ^(apple|grape|orange)\.example\.com$ とするのと RewriteCond %{HTTP_HOST} ^apple\.example\.com$ [OR] RewriteCond %{HTTP_HOST} ^grape\.example\.com$ [OR] RewriteCond %{HTTP_HOST} ^orange\.example\.com$ とする場合で、一般論としてどちらが高速でしょうか?
- 153 名前:nobodyさん mailto:sage [2005/09/19(月) 04:05:03 ID:???]
- >>152
正規表現を1回評価するのと3回評価するのとでは明らかに1回の方が早いので前者
- 154 名前:nobodyさん mailto:sage [2005/09/27(火) 17:41:19 ID:???]
- RewriteRule ^(.*)$ /tmp/hoge.cgi [L]
としたときに、robots.txtなどのいくつかのファイルはスキップさせたいのですが どのようにすれば良いのでしょうか?
- 155 名前:nobodyさん mailto:sage [2005/09/30(金) 19:04:43 ID:???]
- .htaccessスレから移動してきました。
質問があります。 URLエンコードを行って日本語等が%XYの形式になったURLを含んでいるとき、 RewriteRule ^([0-9A-Za-z%]+)$ test.php?keyword=$1 などとしても404エラーになってしまいます。(日本語がないときは通常通りです。) ルールの記述が間違っているのでしょうか。 エラーにならない方法をご存知でしょうか。お願いします。
- 156 名前:nobodyさん mailto:sage [2005/09/30(金) 20:40:28 ID:???]
- >154
まずマニュアルを読んで、それから細かいところを質問する姿勢を見せる。
- 157 名前:nobodyさん [2006/01/15(日) 15:53:40 ID:0othuuG9]
- XREAでは
RewriteRule ^(.*)\.html$ test.cgi?$1 でうまくいったのに、自分のサーバーでは漢字とひらがながリライトできない。 記述の問題じゃないかも。
- 158 名前:nobodyさん mailto:sage [2006/01/15(日) 16:02:20 ID:???]
- 文字コードでしょ
- 159 名前:157 mailto:sage [2006/01/16(月) 01:32:31 ID:???]
- かも
まあ、Apache1.3から2にしたら、何の問題もなくリライトするようになったのでよしとする
- 160 名前:nobodyさん mailto:sage [2006/01/20(金) 03:14:31 ID:???]
- ちょっと質問です。
なぜか"."(ドット)を使うと404になるのですが、回避する方法はないものでしょうか? こっちだと動かないんだけど、 shinehage.com/072.sex → shinehage.com/index.cgi?072.sex こっちだと動く shinehage.com/072-sex → shinehage.com/index.cgi?072-sex RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([0-9A-Za-z]+\.[0-9A-Za-z]+)$ index.cgi?$1 [L] ↑これではダメで、 ↓こっちだと動く・・・ RewriteRule ^([0-9A-Za-z]+\-[0-9A-Za-z]+)$ index.php?$1 [L]
- 161 名前:nobodyさん mailto:sage [2006/01/20(金) 12:45:18 ID:???]
- ログ見るのがはやいんじゃ?
- 162 名前:nobodyさん mailto:sage [2006/01/31(火) 13:32:42 ID:???]
- mod_rewriteとpath_infoってどっちの方がいいのかな?
- 163 名前:nobodyさん [2006/03/08(水) 21:55:04 ID:F0LiHM5T]
- RewriteEngine on
RewriteBase /hogehoge RewriteRule ^hoge/([^/]+)/$ ho.php?user=$1 [L] とした場合、/hoge/username/?page=2 といった感じで引数userのほかに引数pageを読み込ませるにはどうしたらいいのでしょうか?
- 164 名前:nobodyさん mailto:sage [2006/03/09(木) 08:30:08 ID:???]
- >>163
RewriteRule ^hoge/([^/]+)/$ ho.php?user=$1&%{QUERY_STRING} [L]
- 165 名前:nobodyさん [2006/03/10(金) 01:49:51 ID:wS29C68G]
- エロ屋やアマゾンとかで
/-/detail/=/ とかいうURLがあるけどあれもmod_rewrite? ハイフンとかなんか意味あるのかな
- 166 名前:nobodyさん mailto:age [2006/03/13(月) 12:10:05 ID:???]
-
RewriteEngine on RewriteRule ^/dir/hoge/([0-9]+).html$ /dir/hoge.php?id=$1 として/dir/hoge/nn.htmlのアクセスを/dir/hoge.php?id=nnに rewriteし、/dir/hoge.phpは動作するのですがQUERY_STRINGのid=nnが hoge.phpに渡りません。なにかRewriteRuleの書き方におかしな点が ありますでしょうか?
- 167 名前:nobodyさん mailto:age [2006/03/13(月) 12:14:32 ID:???]
- ↑申し遅れました。CentOS3.4+Apache1.3.33、ちなみにphp4.4.2です
- 168 名前:nobodyさん mailto:sage [2006/03/13(月) 12:24:24 ID:???]
- >>166
もちろん実際のnnは数字でここではサンプルとしてnnと書いたんだよね
- 169 名前:nobodyさん mailto:age [2006/03/13(月) 13:19:52 ID:???]
- そうです。nnは数字です。
ちなみにhoge.phpで参照できる'REQUEST_URI'は ブラウザ送信された/dir/hoge/nn.htmlがそのまま来ますので hoge.php側で何とかできそうですが、 腑に落ちないのとhoge.phpを変更したくないので 設定に落度があるのならそれで解決したいと考えています。 よろしくお願いします。
- 170 名前:nobodyさん mailto:sage [2006/03/13(月) 13:33:00 ID:???]
- >>166
>>164
|

|