【Apache】mod_rewriteについて語るスレ 相変わらず…何もわかっていない…
何でアホのくせに偉そうなんだろう・・・
脳みそが足りないからじゃね?
mod_rewriteよか、したのサーバーでリバースプロキシだろ
633 :
nobodyさん :2012/08/07(火) 13:24:36.49 ID:YRcNWMi3
さくらのレンタルサーバーを使っているのですが RewriteRule (.+)/([0-9]+)$ $1.php?id=$2 [L] や RewriteRule a/([0-9]+)$ a.php?id=$1 [L] などの用に書き換え先と書き換え後に同じ文字があると404エラーになってしまいます。 RewriteRule a/([0-9]+)$ b.php?id=$1 [L] なら動くのですが・・・。 どうすれば同じ文字を使い書き換えすることができるんでしょうか・・・?
御存知の方教えてください。
mod_rewriteで呼び出すnph-cgiのボディに余計なヘッダ文字列が出力されます。
ヘッダには意図した文字列が出力されます。
まさにこのスレの
>>76 >>286 と同じ症状なんですが回避策ありませんでしょうか?
636 :
nobodyさん :2012/10/29(月) 20:46:56.05 ID:jAMWqNZ2
質問させてください
現在Apacheのバーチャルホスト機能を利用しています
■VirtualHostの設定はこのようになっています(DocumentRootは同じ)
<VirtualHost *:80>
ServerName www.example.com
DocumentRoot /home/hoge/public_html
</VirtualHost>
<VirtualHost *:80>
ServerName www.example2.com
DocumentRoot /home/hoge/public_html
</VirtualHost>
■やりたいこと
1)
http://www.example.com/hoge/でアクセスがあった場合 /home/hoge/public_html/index.php?id=hogeを表示したい。
RewriteRule ^([a-z0-9_-]+)/$ /home/hoge/public_html/index.php?id=$1 [L]
2)
http://www.example2.comでアクセスがあった場合 /home/hoge/public_html/index.php?id=hogeを表示したい。
RewriteRule ^$ /home/hoge/public_html/index.php?id=hoge [L]
つまり、異なるドメインで同じページを表示したいのです。
このRewriteRuleを両方書いても最初に書いたルールしか適用されません。
オプションが問題なのでしょうか?よろしくお願いします。
全部貼って
638 :
nobodyさん :2012/10/29(月) 22:36:47.55 ID:jAMWqNZ2
>>637 はい。レスありがとうございます。
設定は全部でこのようになっています。
RewriteEngine on
# 1) www.example.com用
RewriteRule ^([a-z0-9_-]+)/$ /home/hoge/public_html/index.php?id=$1 [L]
RewriteRule ^([a-z0-9_-]+)/([a-z]+)/$ /home/hoge/public_html/$2.php?id=$1 [L]
# 2) www.example2.com用
RewriteRule ^$ /home/hoge/public_html/index.php?id=hoge [L]
RewriteRule ^([a-z]+)/$ /home/hoge/public_html/$1.php?id=hoge [L]
1)は、
http://www.example.com/hoge/でアクセスが会った場合 、id=hogeになるようにしています。これを
2)で、
http://www.example2.comでアクセスがあった場合 、id=hogeになるような設定にしたいと思っています。
id=hogeは当然設定に記入する必要がありますよね。そしてアクセスがあった場合両方のドメインで同じようになるようにしたいのです。
よろしくお願いします。
丁寧な質問者に対してこんなこと言うのはほんと心苦しいんだけど、頼むから全部貼って
彼はなぜ全部じゃないと思ったのだろう?
640はなぜ全部だと思ったのだろう?
643 :
nobodyさん :2013/03/26(火) 06:58:48.63 ID:4K2kYRPh
>>642 baseでggrks mod_rewrite関係ねえから
644 :
nobodyさん :2013/05/02(木) 20:24:29.83 ID:bOBKpt7I
ちょっと質問させてください apache2.2から2.4への移行作業をしていて気づいたのですが 2.2のときはトップページへのアクセスを RewriteRule ^$ /foo.php としてリライトしてたのですが 2.4ではこの条件に該当しなくなってしまいました。 いろいろ試行錯誤したところ RewriteRule ^(index\.html)?$ /foo.php と書くとOKということが分かりました。 RewriteRule ^index\.html$ /foo.php はNGでした。 回避策は分かったのですがなんだか気持ち悪いので質問してみました。 これは仕様が変わったのでしょうか?
645 :
nobodyさん :2013/05/08(水) 17:17:31.74 ID:lLEBkj6z
646 :
645 :2013/05/08(水) 18:14:47.04 ID:???
mod_proxyが、無いとダメっぽいですね。 サーバーには、入ってませんでした (つд⊂)エーン
Rが付くとデフォルトでは301を使ってリダイレクトする。
649 :
645 :2013/05/11(土) 17:44:12.77 ID:???
メインのwww.〜のサーバーが仕様が古くて、使いたいプログラムが動かないだわ。 パクリサイトの手口もそうやるんだろうけどさ。
650 :
645 :2013/05/11(土) 17:45:21.64 ID:???
自己解決しました。もういいです。
さくらサーバーリダイレクト301で
初期ドメイン から 独自ドメインに転送したいのでうまくいきません
RewriteEngine on
RewriteCond %{HTTP_HOST} ****?.sakura?.ne?.jp [NC]
RewriteRule .*
http://www.*******.jp%{REQUEST_URI} [L,R=301]
Internal Server Errorが出てしまい
さくらのエラーログを見ると
/home/アカウント/www/.htaccess: Invalid command '\xef\xbb\xbfDirectoryIndex', perhaps mis-spelled or defined by a module not included in the server configuration
ログにあるようにwww配下に.htaccessを置いています
訳すとスペルミスかモジュールがないと言う事ですが
さくらサーバーは公式でmod_rewriteを利用できるみたいですし
記述が間違っていうのでしょうか
どうかよろしくお願いいたします。
DirectoryIndexの手前に全角スペースとか付いてね?
653 :
nobodyさん :2013/11/29(金) 07:40:27.72 ID:x026Ok3v
>>651 >\xef\xbb\xbf
とりあえず、UTF-8のBOMだな、これ。
付かないように保存してみたら?
654 :
nobodyさん :2013/11/29(金) 09:56:58.90 ID:qgN1e/+l
メモ帳でやるとそういうことが起きるだよ
Apache の .htaccess の設定について質問させてください。 特定のファイルへアクセスがあった場合には、そのファイルだけリダイレクトをかけたいです。 具体的には、 contact.html にアクセスが来た場合には、 contact.php ファイルに飛ばしたいと考えています。 どういうコードを書けば全ファイルでは無く、特定のファイルに対して.modrewriteを使えますか?
普通に RewriteRule (.*)/contact.html$ $1/contact.php [R=301,L] とかそんなんでいいんじゃないの
>>656 ありがとうございます!
このスレが過疎過ぎて誰も見てくれていないんじゃないかと思ってましたw
質問スレでもない特定のモノ向けのスレだからな、過疎るのはしょうがない 何か特別話題があるわけでもないし とはいえ見てる人は見てるだろう、俺も専ブラのブックマークしてチェックはしてるし 一見過疎ってても案外すぐレスが付くところは珍しくは無い
リライトそのものはオワコン化しつつあるし、
>>655 程度ならRedirectMatchで十分だろと思いつつ
にやにやしながら読んでるしw
>>659 そんな方法もあったのね。
オワコンってまじでっか?
661 :
sage :2014/04/06(日) 15:02:01.73 ID:TmvJ2Q7/
質問させて下さい。
http://sample.co.jp/xxx/ にアクセスしたときに
http://sample.co.jp/xxx.php を表示したくて、.htaccessに
RewriteEngine on
RewriteOptions MaxRedirects=1
RewriteBase /
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9a-zA-Z_\-]+)/$ $1\.php [L,R]
と書いたのですが、正常に動作してくれません。
どこが間違っているか教えて下さい。
662 :
nobodyさん :2014/10/21(火) 18:02:28.17 ID:no1UJMbX
マッチしてるか調べたい文字列が base64でエンコードされているのですが これをデコードしてからマッチさせるところまで 全部正規表現で記述出来ますか?
933 名前:デフォルトの名無しさん[sage] 投稿日:2014/10/21(火) 13:15:50.92 ID:QuOrKhyR マッチしてるか調べたい文字列が base64でエンコードされているのですが これをデコードしてからマッチさせるところまで 全部正規表現で記述出来ますか?
.htaccessに書いた内容が思ったように動かないとき、 動作を確認する方法はあるのでしょうか?
665 :
nobodyさん :2014/10/28(火) 02:51:50.21 ID:BSkYbeSW
ログ吐かせろよハゲ
666 :
664 :2014/10/28(火) 21:04:34.73 ID:???
>>665 ハゲはお前だろ。
ていうか、ありがとうございます。
ログってApacheのログですか?
まあ、落ち着いてマニュアル当たれれ
668 :
nobodyさん :2014/10/29(水) 00:14:35.16 ID:TJ2Xvz38
665だけど1万本くらいてめえにくれてやりたいくらい多すぎて鬱陶しいレベルでふさふさだぞ りらいとろぐでggrks
669 :
664 :2014/10/29(水) 05:50:09.96 ID:???
>>668 1万本もないくせによく言うわツルッパゲのカス野郎。
っていうか、ありがとうございます。
リライトログでぐぐってみます。
rewritelog って RewriteCond でスキップされるケースでも 全部ログに残ってしまうみたいだけど スキップしたときのログを残さないのは無理? Level 1 だとスキップしたものも記録される Level 0 だと全部消える
671 :
nobodyさん :2014/11/07(金) 15:24:41.12 ID:aXYLSPgq
誘導されて来ました。 リクエストヘッダで 'Cookie' => 'PHPSESSID=fadkcau6mnmq1ul6jo5pvngqlahd2hoge', と送られてくるべきものが、ブラウザのバグで 'Cookie' => ', PHPSESSID=fadkcau6mnmq1ul6jo5pvngqlahd2hoge', と送られてきてるんだけど、これ apache 側でphpに食わすまえに置換できないかな。 mod_headers の RequestHeader は置換できないみたいだし、いい方法ある?
そのまま放置してバグったブラウザをいつまでも使ってんじゃねーよとするw
判らないならレスしないでください うざいだけです
PHP側でやるべきことだな
675 :
nobodyさん :
2014/11/10(月) 14:14:41.86 ID:yg9Z7Cjj ぺちぱーの時点で知的障害者だからな