【Apache】mod_rewriteについて語るスレ
- 1 :nobodyさん:02/06/11 19:29 ID:wH0rV3+D
- Apacheのモジュール『mod_rewrite』に関連するスレです。
基本的な内容は↓ページを読むこと。
http://japache.infoscience.co.jp/rewriteguide/
http://japache.infoscience.co.jp/japanese_1_3_6/manual/mod/mod_rewrite.html
それではマターリ逝きましょう。
- 151 :nobodyさん:2005/08/28(日) 19:23:03 ID:???
- RewriteMap 使えば?
- 152 :nobodyさん: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さん:2005/09/19(月) 04:05:03 ID:???
- >>152
正規表現を1回評価するのと3回評価するのとでは明らかに1回の方が早いので前者
- 154 :nobodyさん:2005/09/27(火) 17:41:19 ID:???
- RewriteRule ^(.*)$ /tmp/hoge.cgi [L]
としたときに、robots.txtなどのいくつかのファイルはスキップさせたいのですが
どのようにすれば良いのでしょうか?
- 155 :nobodyさん:2005/09/30(金) 19:04:43 ID:???
- .htaccessスレから移動してきました。
質問があります。
URLエンコードを行って日本語等が%XYの形式になったURLを含んでいるとき、
RewriteRule ^([0-9A-Za-z%]+)$ test.php?keyword=$1
などとしても404エラーになってしまいます。(日本語がないときは通常通りです。)
ルールの記述が間違っているのでしょうか。
エラーにならない方法をご存知でしょうか。お願いします。
- 156 :nobodyさん: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さん:2006/01/15(日) 16:02:20 ID:???
- 文字コードでしょ
- 159 :157:2006/01/16(月) 01:32:31 ID:???
- かも
まあ、Apache1.3から2にしたら、何の問題もなくリライトするようになったのでよしとする
- 160 :nobodyさん:2006/01/20(金) 03:14:31 ID:???
- ちょっと質問です。
なぜか"."(ドット)を使うと404になるのですが、回避する方法はないものでしょうか?
こっちだと動かないんだけど、
http://shinehage.com/072.sex → http://shinehage.com/index.cgi?072.sex
こっちだと動く
http://shinehage.com/072-sex → http://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さん:2006/01/20(金) 12:45:18 ID:???
- ログ見るのがはやいんじゃ?
- 162 :nobodyさん: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さん: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さん: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さん:2006/03/13(月) 12:14:32 ID:???
- ↑申し遅れました。CentOS3.4+Apache1.3.33、ちなみにphp4.4.2です
- 168 :nobodyさん:2006/03/13(月) 12:24:24 ID:???
- >>166
もちろん実際のnnは数字でここではサンプルとしてnnと書いたんだよね
- 169 :nobodyさん:2006/03/13(月) 13:19:52 ID:???
- そうです。nnは数字です。
ちなみにhoge.phpで参照できる'REQUEST_URI'は
ブラウザ送信された/dir/hoge/nn.htmlがそのまま来ますので
hoge.php側で何とかできそうですが、
腑に落ちないのとhoge.phpを変更したくないので
設定に落度があるのならそれで解決したいと考えています。
よろしくお願いします。
- 170 :nobodyさん:2006/03/13(月) 13:33:00 ID:???
- >>166
>>164
- 171 :nobodyさん:2006/03/13(月) 14:37:04 ID:???
- 166です。
よくわからなくなってきました。
RewriteEngineとRewriteRuleをコメントにしても
/dir/hoge/nn.htmlでhoge.phpが呼び出されます。
別の次元でRewriteRuleが効いているようですが
心当たりなしでパニック中。
- 172 :nobodyさん:2006/03/13(月) 15:23:36 ID:???
- >>171
落ち着いて access_log
- 173 :nobodyさん:2006/03/25(土) 15:58:49 ID:rUjENMuu
- 通常ポートのSSLのhttp→httpsへのリダイレクトはうまくいったのですが、
別ポートにもう一つ設置した445ポートの場合、
http://www.example.com:445/
↓
https://www.example.com:445/
にリダイレクトしたいのですが、RewriteRuleとRewriteRuleを
どのように書いたらいいでしょうか?
- 174 :nobodyさん:2006/04/06(木) 05:28:11 ID:???
- パラメーターに&が入ったときのmod_rewriteについて質問です・・
問題をvar_dumpを使って入ってきたパラメーターだけを表示するプログラムtest.phpにまとめてみました。
あと私のところで使ってる文字コードはUTF-8
<?
var_dump($_SERVER["QUERY_STRING"]);
echo "<br>\n";
var_dump($_GET);
$param = urlencode("coffee&tea");
$directUrl = "http://hoge.go.jp/test.php?keyword=". $param;
$rewriteUrl = "http://hoge.go.jp/". $param. "/";
echo "<br>\n";
echo "case 1 <a href=\"". $directUrl ."\">direct_url</a><br>\n";
echo "case 2 <a href=\"". $rewriteUrl ."\">rewrite_url</a><br>\n";
?>
で、.htaccessはこんな感じ
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} ^/(.*)/$
RewriteRule ^(.*)/$ /test.php?keyword=$1 [L]
- 175 :nobodyさん:2006/04/06(木) 05:28:46 ID:???
- case1のdirect_urlの場合http://hogehoge.go.jp/test.php?keyword=coffee%26teaを生成。
そのURL(自分自身なわけだけど)に飛ぶと以下の文字列を吐き出す
string(20) "keyword=coffee%26tea"
array(1) { ["keyword"]=> string(10) "coffee&tea" }
これはOK。これにrewriteを噛ましたい。
問題のcase 2、rewrite_urlの場合http://hoge.go.jp/coffee%26tea/を生成。
飛ぶとmod_rewrite補足され、変換される。以下ログから抜粋
(3) [per-dir /var/www/hoge.go.jp/] applying pattern '^(.*)/$' to uri 'coffee&tea/'
(4) RewriteCond: input='/coffee&tea/' pattern='^/(.*)/$' => matched
(2) [per-dir /var/www/hoge.go.jp/] rewrite coffee&tea/ -> /test.php?keyword=coffee&tea
(3) split uri=/test.php?keyword=coffee&tea -> uri=/test.php, args=keyword=coffee&tea
そのURLに飛ぶと以下の文字列を吐き出す
string(18) "keyword=coffee&tea"
array(2) { ["keyword"]=> string(6) "coffee" ["tea"]=> string(0) "" }
%26がmod_rewriteで&にデコードされちゃってteaが引数名になっちゃうよ・・・
対策法ご存知の方教えてください・・・あるいはどこか設定が悪いのか・・・
- 176 :nobodyさん:2006/04/06(木) 08:11:14 ID:???
- >>175
$rewriteUrl = "http://hoge.go.jp/". urlencode($param). "/";
- 177 :nobodyさん:2006/04/06(木) 08:59:39 ID:???
- >>176
あー、なるほど、mod_rewriteにはurlencodeを2重に仕込むのね。
mod_rewriteを延々と弄っててきがつかんかった。
確認取ったところ上手く動きました。
この方法でやってみます。サンクス。
しかしmod_rewrite側での対応は設定はやはり難しいのかなぁ・・・
PHPに入ってくるエンコード状態と出て行くエンコード状態がrewrite使う使わずに関わらず
同じであれば見通しがいいかなーとか思ってたので。
- 178 :nobodyさん:2006/04/22(土) 02:52:49 ID:IkBNOhRq
- フラグのQSAは、マニュアルに
>このフラッグは、置き換えるのではなく、存在するものに対して、
>rewrite エンジンが代用文字列にあるクエリー文字列にアペンドするようにします。
>rewite ルールでクエリー文字列にデータを追加したいときに使ってください。
とあるのですが、実挙動としてどのようになるのか、よくわかりません。
いったいどうなるのでしょうか?
- 179 :nobodyさん:2006/04/22(土) 13:58:50 ID:???
- >178
読んで字の如くそうなる。
- 180 :nobodyさん:2006/04/23(日) 02:46:10 ID:???
- いや、だからその、言葉の意味がわかにくいので・・・
実挙動としてどうなるのか、サンプルなどがあるとわかりやすいんですけど、、
- 181 :nobodyさん:2006/04/24(月) 11:05:56 ID:Z/7vX4oM
- /hoge/modname/ReserveForm.do
↓
/hoge/modname/index.php?ReserveForm
といった感じにrewriteしたいのですが、どうもうまくいきません。
RewriteRule !hoge/([^/]+/)ReserveForm\.do $1/index.php
とやるだけで、internalエラー(無限ループ)になります。
modnameの部分を$1に置換するにはどうやればいいのでしょうか。
- 182 :nobodyさん:2006/04/24(月) 12:34:14 ID:???
- >>181
modnameを置換する必要はないようだけど例文の間違いですか
- 183 :nobodyさん:2006/06/12(月) 02:24:24 ID:???
- >>143 みたいなことしたいのですけど、やはり決定的な方法ってありませんかね。。。
- 184 :nobodyさん:2006/06/12(月) 05:04:50 ID:???
- >>150 に書いてありましたね。。。
すみません。。。
- 185 :nobodyさん:2006/06/15(木) 09:05:30 ID:p9raRrGD
- Apache1.3.3, Win2000SP2で、バーチャルホストでMovableTypeを運用してます。
Tagを、http://domain.tld/tags/tagname
という形で作れるようにできたまではいいのですが、
http://as-is.net/blog/archives/001020.html を参考に .htaccessに
RewriteEngine on
RewriteRule ^tags/(.*)$ /cgi-bin/mt/mt-xsearch.cgi?blog_id=2&search_key=Tagwire&delimiter=,&search=$1 [QSA,L]
と指定してるのですが404エラーが出てしまいます。
実際に飛んでほしい先は
http://domain.tld/cgi-bin/mt/mt-xsearch.cgi?blog_id=2$search_key=Tagwire&delimiter=,$search=tagname
です。
RewriteRule aaa.html bbb.html
などと実際に存在するbbb.htmlに向けてaaa.htmlを呼び出してテストすると表示されますので
mod_rewrite自体は動いてます。
見直す点等アドバイスいただければ幸いです。
- 186 :185:2006/06/15(木) 09:07:01 ID:???
- すみません、タイプミスありました。
実際に飛んでほしい先は
http://domain.tld/cgi-bin/mt/mt-xsearch.cgi?blog_id=2$search_key=Tagwire&delimiter=,&search=tagname
です。
- 187 :nobodyさん:2006/06/24(土) 20:11:15 ID:usPjod1h
- http://www.hogehoge.com を http://hogehoge.com/main/
に書き換えたいのですが、
どうすればいいのですか?
- 188 :nobodyさん:2006/06/25(日) 09:19:26 ID:???
- RewriteRule ^$ http://hogehoge.com/main/
- 189 :nobodyさん:2006/07/29(土) 17:15:32 ID:???
- こんなことをしたいのですが、500 Internal Server Errorになります。
httpdはRHEL3のインストーラーにしたがって、そのままインストールしました。
http://www.domain.com/http://www.google.co.jp
↓
RewriteEngine on
RewriteRule (..*) $1 [L]
↓
http://www.google.co.jp
アドバイスをお願いします。
- 190 :nobodyさん:2006/08/01(火) 20:44:39 ID:???
- >>189
R オプションでリダイレクトじゃまいか?
[R,L]
- 191 :nobodyさん:2006/08/07(月) 16:21:58 ID:???
- JVNVU#395412
Apache httpd の mod_rewrite モジュールにおけるバッファオーバーフローの脆弱性
ttp://jvn.jp/cert/JVNVU%23395412/index.html
何が悪かったの?
- 192 :nobodyさん:2006/08/19(土) 09:19:31 ID:AnvEHxgI
- 鯖は逆引き設定にしてあります。
逆引きできない人を別アドレスへ飛ばしたいのですが
「REMOTE_HOSTが数字だけの時」という条件はどう書けばいいでしょうか?
またproxy接続の人をmod_rewriteだけでなるべく効果的に(完全でなくてもいい)
別アドレスへ飛ばしたいのですがどの環境変数にRewriteCondをどう書けばいいでしょうか?
初心者ですがよろしくお願いします。
- 193 :nobodyさん:2006/08/29(火) 18:50:13 ID:qBkjqVym
- http://example.com/hogehoge を
http://example.com/?hogehoge
にリダイレクトさせるために、.htaccessに
RewriteEngine on
RewriteRule ^(.+)$ /?$1 [L]
と書いたのですが、500エラー出てうまくいきません。
アドバイスお願いします・・・
- 194 :nobodyさん:2006/09/05(火) 21:59:51 ID:Hy3lSiWg
- 質問です。
使っているサーバーにて、サーバー管理人さんにmod_rewriteをONにしてもらったのですが、
きちんと動作することを確認するサンプルphpや.htaccessをご存知ないですか?
サーバー管理人さんが忙しいようでなかなか連絡がつきません、
どうにか動作確認をしたいのですが。。。
- 195 :nobodyさん:2006/09/05(火) 23:49:05 ID:???
- >>194
動作確認の方法もわからずにそんなことをしてどうするつもりだ?
- 196 :nobodyさん:2006/09/05(火) 23:53:40 ID:Hy3lSiWg
- >>195
とあるCMSプラグインを説明書に従ってインストールします。
- 197 :nobodyさん:2006/09/06(水) 16:18:20 ID:???
- 管理人も大変だな
- 198 :nobodyさん:2006/09/06(水) 16:50:16 ID:???
- >>197
そういわれると思ったよ。
標準的な他サーバー3つでプラグイン動いてるし、
プラグインの動作に必要なのはmod_rewriteのみだし。
CMSの動作は他にいれたサイトがずっと安定してるし。
こっちが大変だと思ってるけどもう実装は諦めた。
断る。
- 199 :nobodyさん:2006/09/06(水) 22:30:09 ID:ogWsQap5
- ねぇ。誰かmod_rewriteエミュレータつくらね?
入力文字列(URL)を入力したら
htaccessにしたがって
どうURL変換されるか表示されるの。
そうすれば大幅に敷居が下がると思うんだけど。
- 200 :nobodyさん:2006/09/07(木) 09:25:25 ID:???
- >>199
> mod_rewriteエミュレータ作ろうと思うんだけどどうよ?
> 入力文字列(URL)を入力したら
> htaccessにしたがって
> どうURL変換されるか表示されるの。
> そうすれば大幅に敷居が下がると思うんだけど。
すっげぇ期待してます。
- 201 :nobodyさん:2006/09/07(木) 17:01:33 ID:???
- 勝手に変わってるw
まあ便利だろうけどdebug onにすれば大体事足りるからね
- 202 :nobodyさん:2006/10/21(土) 03:17:29 ID:KzoqADxq
- mod_jk2でapacheとtomcatを連携しています。
mod_rewriteを使って、tomcat上で動くstrutsを用いたアプリの
URLを書き換えようとしているのですが、うまくいきません。。
(URLがrewriteされる前に、tomcatのほうに制御がいってしまい、うまく書き換えられない)
どこを設定すればよいでしょうか?
- 203 :nobodyさん:2006/10/22(日) 17:32:12 ID:???
- mod_rewriteエミュレータまだですか?
- 204 :nobodyさん:2006/10/22(日) 21:14:50 ID:???
- 最近佐賀ネタでスレ違いの書き込みが増えている。
佐賀県庁・佐賀県警・談合・痴漢・情報漏洩などの内容だ。
銀行が潰れるとしたデマが回り騒ぎが起きたこともある。
このような書き込みは慎むべきだ。
被害防止のため常駐するスレに啓蒙してくれ。
- 205 :nobodyさん:2006/12/14(木) 00:36:31 ID:HPgduaQo
- 坊やな質問させてもらうで酢
mod_rewriteのRewriteRuleでprofile.cgiからprofile.htmlへURLの書き換えをしようとしてるで酢
書いたルールが以下の通りで酢
RewriteRule ^(.*)\.cgi?(.*) $1.html?$2 [L]
でも「profile.htmlなんてねぇよ」って狐火に言われるんで酢
mod_rewriteってURLだけの書き換えって出来ないんで酢か?
回答お願いしま酢
- 206 :nobodyさん:2006/12/14(木) 14:03:45 ID:???
- クライアント側を騙すことは出来ない
- 207 :nobodyさん:2006/12/14(木) 18:14:19 ID:???
- >>206
まじで酢か。
じゃあソース直接書き換えるしかないで酢ね。
ありがとうで酢
- 208 :nobodyさん:2006/12/15(金) 02:34:56 ID:???
- cgi と html が逆なだけだろw
htmlにアクセスしたときcgiを実行するようにすればいいんだよ。
- 209 :nobodyさん:2006/12/16(土) 00:15:59 ID:???
- .htacc(略
- 210 :nobodyさん:2007/03/03(土) 20:36:20 ID:???
- すいません。
正規表現の質問なのですが、
mod_rewriteで、
"/media.*"以外へのリクエストをすべて"/index.php"へ飛ばすにはどうすれば良いでしょうか?
宜しくお願いします。
- 211 :nobodyさん:2007/03/04(日) 12:24:43 ID:???
- >>210
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/media
RewriteRule (.*) /index.php [L]
!^/media の ^ はいらんかったかな…
- 212 :nobodyさん:2007/03/06(火) 13:08:27 ID:???
- すいません。質問させてください。
http://example.com を http://www.example.com に
リダイレクトさせたいのですが、https環境になるとうまくいきません。
https用に下記のように考えてみたのですが…。
RewriteEngine on
RewriteCond %{SERVER_PORT} ^443 [AND]
RewriteCond %{HTTP_HOST} ^example\.com
RewriteRule (.*)$ https://www.example.com$1 [R=301,L]
うまい方法はないでしょうか?
- 213 :212:2007/03/06(火) 14:31:15 ID:???
- 自己解決しました。
RewriteEngine on
RewriteCond %{SERVER_PORT} ^443
RewriteCond %{HTTP_HOST} ^example\.com
RewriteRule (.*)$ https://www.example.com$1 [R=301,L]
SSL環境の設定ファイルが違いました。。。orz
- 214 :nobodyさん:2007/03/07(水) 01:06:15 ID:???
- ([0-9A-Za-z]+) の部分にアンダーバーを入れたいのですが、_を入れてもうまくいきません。
RewriteRule ^([0-9A-Za-z_]+)/$ /index.php?mod=user&act=$1 [L]
半角英数字の正規表現にアンダーバーを入れるにはどうすればいいでしょうか?
- 215 :214:2007/03/07(水) 01:09:00 ID:???
- 自己レス
ただapacheを再起動していなかっただけぽ
- 216 :nobodyさん:2007/03/10(土) 17:38:22 ID:VXyj5Dh3
- index.php?p=2&mode=m&url=http://www.example.com/
で m/2/http://wwww.example.com/ として表示させることは可能でしょうか?
- 217 :nobodyさん:2007/05/25(金) 00:26:35 ID:4kvXKUJV
- ちょっと質問なんですが
http://example.com/hoge/hage/ を
hogeというディレクトリが無ければ
http://example.com/index.php にリダイレクト
あれば
http://example.com/hoge/ をそのまま表示させたいのです。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
上記のようにやってみたのですが、ディレクトリが存在しようが無かろうが
すべてhttp://example.com/index.phpにリダイレクトされてしまいました。
いったいどこが間違っているのでしょうか?
- 218 :nobodyさん:2007/05/25(金) 07:40:57 ID:???
- >>216
可能
>>217
試したらちゃんと動作したので間違ってはいないと思う
- 219 :217:2007/05/26(土) 06:46:54 ID:???
- >>218
まじっすか。
apacheの設定に問題があるのかもしれません。
もうすこし調べてみます。ありがとうございました。
- 220 :nobodyさん:2007/05/26(土) 13:58:00 ID:llpEpcc0
- 都合により mod_dir のスラッシュ補完が行えない環境なので、
mod_rewrite でスラッシュ補完を実現させたいと考えており、アドバイスをお願いしたいです。
※説明が長くなってしまったので、本文をいくつかに分割して投稿いたします。
○現在の状況
まず、下記の設定を追加する事で、UserDir にチルダ無しでアクセスが出来るようにしてあります。
RewriteEngine on
RewriteRule ^/([a-zA-Z0-9_\-]+)/(.*) - [C]
RewriteCond /home/$1/public_html/$2 -f [OR]
RewriteCond /home/$1/public_html -d
RewriteRule ^/([a-zA-Z0-9_\-]+)/(.*) /~$1/$2/ [PT]
RewriteRule ^/([a-zA-Z0-9_\-]+)$ /~$1/ [PT]
上記 RewriteRule の影響で、 URLの最後にスラッシュが含まれていない場合、mod_dir のスラッシュ補完が行われません。
・例 test ユーザのディレクトリでアクセスした場合
本来であれば下記のスラッシュ補完が行われるはずだが、実際にはスラッシュ補完が稼動しない。
http://www.xxxx.net/test を
↓
http://www.xxxx.net/test/ とさせたい
ちなみに、チルダ有りでアクセスすると mod_dir のスラッシュ補完は問題なく行われる事を確認済です。
http://www.xxxx.net/~test を
↓
http://www.xxxx.net/~test/ となる。
- 221 :nobodyさん:2007/05/26(土) 13:59:31 ID:llpEpcc0
- ○実現させたい事
UserDir のサブディレクトリへチルダ無しでアクセスした場合にも、スラッシュ補完が行われるようにしたい。
色々試した結果、下記のように書き換えると UserDir のルートディレクトリだけはスラッシュ補完が行えるようになりました。
・設定
RewriteEngine on
RewriteRule ^/([a-zA-Z0-9_\-]+)$ $1/ [R]
RewriteRule ^/([a-zA-Z0-9_\-]+)/(.*) - [C]
RewriteCond /home/$1/public_html/$2 -f [OR]
RewriteCond /home/$1/public_html -d
RewriteRule ^/([a-zA-Z0-9_\-]+)/(.*) /~$1/$2/ [PT]
RewriteRule ^/([a-zA-Z0-9_\-]+)$ /~$1/ [PT]
・下記は動作するようになった。
http://www.xxxx.net/test
↓
http://www.xxxx.net/test/
ただし、サブディレクトリのスラッシュ補完はなされません。
http://www.xxxx.net/test/tmp が
↓
http://www.xxxx.net/test/tmp/ にならない。
サブディレクトリのスラッシュ補完を行う為には、どのように RewriteRule を書けばよろしいでしょうか。
アドバイスをお願い致します。
- 222 :nobodyさん:2007/05/29(火) 00:06:05 ID:???
- RewriteRule ^/([\w_]+(/[\w_]+)*)$ $1/ [R]
なんかこんな感じじゃだめかね?
適当
- 223 :サレ:2007/06/21(木) 20:21:18 ID:yAR7j5RX
- mod_rewriteを利用して特定のページアクセスの際にSERVER_NAMEとQUERY_STRING以降を除いて
大文字、小文字の区別なく表示させたいのですが、全くうまくいきません、いい案をお持ちの
方いたらご教示お願いしたいです。
- 224 :nobodyさん:2007/07/06(金) 23:52:39 ID:???
- AにきたリクエストをBにリダイレクトしたいのですが
Cのようにリダイレクト後のURLに「?t=aaa&k=bbb」がくっついてきちゃいます。
これがくっついてこないようにするにはどうしたらいいのでしょうか。
A:/search.html?t=aaa&k=bbb
B:/search/aaa/bbb/index.html
C:/search/aaa/bbb/index.html?t=aaa&k=bbb
RewriteCond %{REQUEST_URI} ^/search\.html$
RewriteCond %{QUERY_STRING} ^t=(.+)&k=(.+)$
RewriteRule ^.*$ /search/%1/%2/index.html [R,L]
- 225 :nobodyさん:2007/07/12(木) 15:02:09 ID:5UK7fMyc
- RewriteEngine on
RewriteCond ${REQUEST_URI} !-d
RewriteRule ^(.*hoge)/([0-9]+)/$ $1?number=$2 [L]
これでURL変換はうまくいってるんですが、ブラウザのアドレス欄には変換後の
http://〜hoge/?number=10
というのが表示されてしまいます。
これを変換前のURLのままにしておくにはどうすれば良いのでしょうか?
- 226 :nobodyさん:2007/07/12(木) 18:23:43 ID:???
- http://aaa.example.com/をhttp://example.com/~aaa/に書き換えるにはどうしたらよいでしょうか?
aaa.example.comとexcample.comは同一のサーバーです。
- 227 :nobodyさん:2007/07/17(火) 16:47:55 ID:???
- >>266
ID。
aaaは定数? それともwwwとwww2だとか幾つかある?
- 228 :nobodyさん:2007/07/19(木) 00:53:42 ID:???
- 質問です。よろしくお願いします。
RewriteRule /(.+)\.(.+)$ /$1.A.$2
既存の拡張子の前に.Aを挿入しようとしていますが、$2に前置するピリオドが
悪さしているらしく、うまく動きません。どうすればよいでしょうか。
- 229 :228:2007/07/19(木) 01:05:11 ID:k0bvHpUP
- .を_などにすると意図したように動きます。といいつつあげます。
- 230 :nobodyさん:2007/07/19(木) 01:50:07 ID:???
- とりあえずピリオドの前には常に¥マークを付けるんだ
- 231 :228:2007/07/19(木) 02:11:07 ID:???
- \つけてもだめでした。その前に、.$1は問題ないんですが、
.はそもそもエスケープする必要あるのが普通でしょうか。
.Aの挿入はおいといて、$1.$2もだめでしたが、$2.$1は大丈夫でした。
何か他の理由でしょうか。
とりあえず、$2にピリオドごと格納して解決しました。
が、なぜ上記のがだめなのか気になって夜も眠れません。
- 232 :228:2007/07/19(木) 23:31:43 ID:???
- 全然、別の問題のようでした。何かがループされてしまってたようです。
Rewriteの動きをよく理解できてないようですので勉強します。
142 KB
[ 2ちゃんねる 3億PV/日をささえる レンタルサーバー \877/2TB/100Mbps]
取りに行ったけどなかった。次は一時間後に取りに行くです。新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 05.0.7.8 2008/11/13 アクチョン仮面 ★
FOX ★ DSO(Dynamic Shared Object)