【Apache】mod_rewriteについて語るスレ (686レス)
上下前次1-新
321: 2008/11/22(土)07:14 ID:??? AAS
> RewriteRule ^/(.*)$ /index2.php$1 [R=301,L]
そりゃ、ループするわ。
> RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php
こっちじゃなかったの?
322(1): 2008/11/22(土)07:20 ID:??? AAS
> RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php
これもループしそうだな
書き換えたindex.phpは永久に!\.(js|ico|gif|jpg|png|css)$の条件に当てはまるだろうし
323: 2008/11/22(土)07:22 ID:??? AAS
ログへのパスを指定したら動かなくなったら、messagesかなんかに、ログが出るでしょ。
ログファイルがないとか権限がないとか。
RewriteRule ^/hoge(.*)$ /index2.php$1 [R=301,L]
で、/hoge/hogeにアクセスしてみ?
324: 2008/11/22(土)07:35 ID:??? AAS
>>322
それはループしないよ。
R=301だとブラウザにリダイレクトして再リクエストさせるけど、
> RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php
この場合、index.phpがすべてのリクエストを受けとって処理開始
325: 2008/11/22(土)07:36 ID:BXxABI2c(2/9) AAS
みなさんありがとうございます、順にためしてみますね。
ログファイルの設定でapacheが再スタートできなくなると書きましたが、
ちょっと前までは設定しても動かせてたんです、それが突然だめになりました
326: 2008/11/22(土)07:44 ID:BXxABI2c(3/9) AAS
>> RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php
>こっちじゃなかったの?
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.phpに設定して
外部リンク[ico]:localhost にアクセスしたら、ちゃんとfavicon.icoを表示しました が、
外部リンク[php]:localhost にアクセスしたら BadRequestといわれました
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php って index.phpに転送するって意味でよかったでしょうか?
>RewriteRule ^/hoge(.*)$ /index2.php$1 [R=301,L]
>で、/hoge/hogeにアクセスしてみ?
をためしたところ
外部リンク:localhost になりました。これで正しいんでしょうか?
327(1): 2008/11/22(土)08:25 ID:??? AAS
釣り?
index.phpになんか書いてあるんじゃないの?
> RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php って index.phpに転送するって意味でよかったでしょうか?
その通り
> 外部リンク:localhost になりました。これで正しいんでしょうか?
正しいでしょう。
328(1): 2008/11/22(土)08:50 ID:??? AAS
RewriteBase /
って書いてる?
そのとき、ちゃんとindex.phpは/index.phpに置いてあるの?
サーバー上のパスだよ。
329: 2008/11/22(土)09:26 ID:BXxABI2c(4/9) AAS
>>327
index.php には echo "index.php"; と書いてあるだけです。
うーんダメだ RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php としたら
index2.phpへのアクセス→Bad Request
index.phpへのアクセス→Bad Request
/sample/index.htmlへのアクセス(普通の静的ファイル)→Bad Request
favicon.icoへのアクセス→ちゃんと表示
となります
>>328
今は httpd.confでmod_rewriteしようとしてるんですが RewriteBase / って使えるんですか?
省5
330(1): 2008/11/22(土)09:37 ID:??? AAS
RewriteBaseは、あなたが、index.phpを置いてあるところを指すように書く
たとえば、/var/www/html直下なら
RewriteBase /var/www/html/
もし、httpd.confでserverRootがちゃんと指定してあるなら
そこからの相対でもいいはず。
RewriteBaseが使えないようなら、
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php
このとき、index.phpをフルパスで書く/var/www/html/index.phpとかね
331: 2008/11/22(土)09:55 ID:BXxABI2c(5/9) AAS
>>330
本当にありがとうございます
httpd.confをみると
ServerRoot "C:/Program Files/Apache Group/Apache2"となっています
index.php は Apache2/htdocs/index.php だから
RewriteEngine on
RewriteBase /htdocs/
としてみたんですがapacheが再起動できませんでした。なので、RewriteBaseはやめて
RewriteRule !\.(js|ico|gif|jpg|png|css)$ /htdocs/index.php とした上で
index2.phpにアクセス→NotFound ※本当はあります<?php echo"index2だよ";?> と書いてあります
省3
332(1): 2008/11/22(土)10:01 ID:??? AAS
ServerRootがそれだったら
RewriteBase htdocs/
だな。
もしくは
RewriteBase "C:/Program Files/Apache Group/Apache2/htdocs/"
で、RewriteBaseを指定したら起動できなくなるんならログを確認してさ。
そんでだめなら
RewriteRule !\.(js|ico|gif|jpg|png|css)$ "C:/Program Files/Apache Group/Apache2/htdocs/index.php"
333: 2008/11/22(土)10:09 ID:BXxABI2c(6/9) AAS
>>332
RewriteEngine on
RewriteRule !\.(js|ico|gif|jpg|png|css)$ htdocs/index.php
に変更してみました!
でも以下のようになりました
index2.phpにアクセス→BadRequest
favicon.icoにアクセス→そのままfavicon.icoを表示
これじゃダメなわけですよねー
mod_rewriteに関連する記述は上に書いただけなんですが(.htaccessもないし)
なんでなんだろう
334(1): 2008/11/22(土)10:12 ID:??? AAS
フルパスは試した?
DocumentRootはどうなってる?
335: 2008/11/22(土)10:25 ID:BXxABI2c(7/9) AAS
>>334
おおお!
RewriteRule !\.(js|ico|gif|jpg|png|css)$ "C:/Program Files/Apache Group/Apache2/htdocs/index.php"
を試したところ、index.phpの内容が表示されました → echo "index.phpです";
(URL的には localhost/index2.php のままなんですがこれでいいんでしょうか?)
しかし、/localhost/favicon.ico にアクセスするとそのままfaviconが表示されます index.phpに移動するんじゃないんでしょうか?
ドキュメントルートは
DocumentRoot "C:/Program Files/Apache Group/Apache2/htdocs" となっています
これは何に関連するんでしょうか?
336: 2008/11/22(土)10:27 ID:BXxABI2c(8/9) AAS
あと、 外部リンク[html]:localhost にアクセスするとこれも localhost/index.html に
移動します。 system以下はそのまま表示したいときはどうしたらいいんでしょうか すみませんが教えてください
本当にすみません
337: 2008/11/22(土)10:40 ID:??? AAS
何をしたいのかわからんので、あとは、自分でドキュメント見て考えてみた方が・・・
URLも変えたいならRオプションでリダイレクトだけど、ループしないように注意。
system以下をrewriteから外したいなら、rewriteCondで除外設定を書く
338: 2008/11/22(土)10:41 ID:??? AAS
あぁ、ちなみに俺が書いたrewriteBaseの記述はデマだったので無視してちょ
339: 2008/11/22(土)10:55 ID:BXxABI2c(9/9) AAS
ありがとうございました! ほんとに助かりました!
340(1): 2008/12/14(日)10:48 ID:+j0Og9H5(1) AAS
スミマセン、聞かせてください
mod_rewriteの除外処理が上手くいかないです
RewriteEngine on
#除外処理#
RewriteCond %{REQUEST_URI} !^/admin
RewriteCond %{REQUEST_URI} !^/phpmyadmin
#RewriteBase /htdocs/
RewriteRule !\.(js|ico|gif|jpg|png|css)$ "C:/Program Files/Apache Group/Apache2/htdocs/index.php"
RewriteLog "C:/Program Files/Apache Group/Apache2/logs/rewrite.log"
RewriteLogLevel 9
省2
上下前次1-新書関写板覧索設栞歴
あと 346 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.033s