【Apache】mod_rewriteについて語るスレ (686レス)
上下前次1-新
268: 2007/12/02(日)08:43 ID:??? AAS
それだとある程度自由にローカルのファイルにアクセス出来るから
Request_URIで判別した方がいいよ
269: 2007/12/20(木)18:10 ID:??? AAS
外部リンク[html]:example.com
のようなリクエストを受け取った時に、
/wiki/test/test.html があれば表示、なければ
/wiki/html/test/test.html があれば表示、なければ
/wiki/index.php?test/test を表示
というようにしたいんだけど、どうやったらいいのでしょう?
特に
/wiki/test/test.html をうけとって、/wiki/ と test/test.html に分離して
RewriteCond で /wiki/html/test/test.html -f
といきたいんだけど、それをどうやったらできるのかわからないのです。
省8
270: 2007/12/20(木)21:19 ID:??? AAS
RewriteEngine on
RewriteBase /wiki
RewriteRule ^(.*)\.html$ $1 [C]
RewriteCond %{REQUEST_FILENAME}.html !-f
RewriteRule ^(.*)$ /wiki/index.php?$1 [L]
とやって
外部リンク[html]:example.com
のようにアクセスしてみたら
みたら、index.php の引数に
test1/test2
省4
271(1): 2008/01/16(水)16:18 ID:??? AAS
RewriteRule ^/(.+)/(.*) /$1/index.php?i=$2
ってやったら
/aa/bb/ は /aa/index.php?i=bb
になったけど
/aa/bb/cc は /aa/index.php?i=bb/cc
変わらなかったんだけど/はだめなの?
272: 2008/01/23(水)22:17 ID:iTWduqjM(1) AAS
外部リンク:hoge.comを外部リンク[html]:hoge.com
というふうに301リダイレクトしたいのですが、
RewriteEngine On
RewriteRule ^/aaa/?page=([0-9A-Za-z]+)$ /aaa/index$1.html [R=301,L]
で上手くいかないのですが、だれかご教授ねがいないでしょうか?
273: 2008/01/24(木)14:33 ID:??? AAS
ねがいない
274: 2008/01/24(木)20:16 ID:??? AAS
RewriteEngine on
RewriteRule ^([A-Za-z0-9-/]+)/?$ /test/$1 [L]
ってやってるんですけど、元から実在するURIが渡されるとrewriteされません。
例えば、hogeへリクエストがあると/test/hogeにrewriteされるんですが、
testへリクエストがあるとtestのままで/test/testとなってくれません。
このようにするにはどうすればいいんでしょうか。
275: 2008/01/27(日)15:53 ID:??? AAS
レンタル鯖屋も大変だな…
276: 2008/02/06(水)01:37 ID:??? AAS
>>271
最長一致、つまりこの場合左に現れる .+ ができるだけ長くマッチしようとする。
その結果、
$1 => aa/bb
$2 => cc
となる。
RewriteRule ^/(.+?)/(.*)$ /$1/index.php?i=$2
として最短一致にすれば期待の結果になる。
あるいは、$1 に / が含まれない仕様であれば、
RewriteRule ^/([^/]+/(.*)$ /$1/index.php?i=$2
省1
277: sage 2008/02/06(水)13:09 ID:cmfp+wYF(1) AAS
すみません、動的URLから動的URLへの書き換えで質問です。
/(dirname)/main.php?(x=XXX&y=yyy) カッコ内は動的
↓
/admin/main.php?dir=(dirname)&(x=XXX&y=YYY)
という感じに、要はディレクトリ名をdirという部分に渡したいのですが、
下記の正規表現で上手く動きません。
どなたかご教授いただけませんか?
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)/main.php?(.*)$ admin/main.php?dir=$1&$2
278: 2008/02/06(水)13:10 ID:??? AAS
↑いまさらダサすぎる失敗はスルーしてください><
279: 2008/02/06(水)14:21 ID:??? AAS
自己解決。QSA便利ですね
280(2): 2008/02/07(木)20:08 ID:L14jE359(1) AAS
fedora8にyumでhttpdをインスコしましたが、mod_rewrite.soが含まれていませんでした
これだけでは足りないと思い、httpd-develもインスコしましたがやはり見つかりません
yumのlistにもmod_rewriteのパッケージが見つからないのです
httpd自体をmakeしなおさないとリンクしないような気がしてならないのですが、これはwgetでmod_rewrite単体を
modulesの下に置くだけでよいのでしょうか?
よろしくお願いします
281(1): 2008/02/08(金)01:43 ID:??? AAS
Fedora使いじゃないんで良く分からんが、
外部リンク[rpm]:download.fedora.redhat.com
には ./usr/lib/httpd/modules/mod_rewrite.so が入ってるけど。
もし mod_rewrite.so がないとして、
httpd -l して mod_so.c があれば DSO 対応でコンパイルしてあるので、
所定のディレクトリにモジュールをおけばいい。
どこから wget してくるのか知らんが。
282: 280 2008/02/09(土)02:06 ID:??? AAS
>>281
confファイルのある/etc/httpd/modules/の下を探していたのですが、ご指摘の場所にmod_rewrite.soが入っていました
まだfedoraのディレクトリ階層に不慣れなものでお恥ずかしいです
httpd -lも確認したところ、mod_so.cがリストされましたのでDSO対応のようです
どうもありがとうございました
283: 2008/02/10(日)09:37 ID:??? AAS
>>280
ソースからビルドしたほうが楽じゃね?
284: 2008/02/29(金)15:31 ID:??? AAS
IE7 で BASIC 認証されると Refer に
外部リンク:id:pw@example.com/contact/?email=test@example.com
と id:pw@ が残るので
外部リンク[com]:example.com
のように消したいと考えています。
mod_rewrite で消す方法思いつく方いらっしゃいますか。
285: 2008/02/29(金)22:12 ID:a2f9rZSr(1) AAS
age
286(1): 2008/04/20(日)18:57 ID:??? AAS
CGI起動のphpをnphにしてrewriteで呼び出すとヘッダ情報が処理データの後に出てくるんだがorz
このスレ見ると>>76で同じ症状があったみたいだが、自力では解決できなかった・・・。
RewriteRule ^.*$ /nph-page.cgi [T=application/x-httpd-cgi,L]
とか、
RewriteRule ^(.+)$ xredirect:$1
RewriteRule ^xredirect:(.*) /nph-page.cgi [T=application/x-httpd-cgi,L]
とか試したんだが駄目だった。。。
アクセスしてきたURIは環境変数で受け取る予定です
助けてください
287: age [age] 2008/04/26(土)13:59 ID:??? AAS
age
上下前次1-新書関写板覧索設栞歴
あと 399 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.008s