【Apache】mod_rewriteについて語るスレ (686レス)
1-

236
(1): JAPU ◆lVJAPUTeX. 2007/08/12(日)19:58 ID:??? AAS
>>233
RewriteRule ^(/.*/)([^/]+)/([^/]+)/$ $1?$2=$3 [QSA,N] ※1
RewriteRule ^/([^/]+)/$ /test/index.cgi?a=$1 [QSA] ※2

"QSA" (query string append) フラグは、書き換え後の QUERY_STRING 部分のみ "追加" の扱いとします。
"N" (next) フラグは、先頭からルールを再実行します。

path = "/1/b/2/c/3/", QUERY_STRING=""
※1のルール適用
path = "/1/a/2/", QUERY_STRING="c=3"
※1のルール適用
path = "/1/", QUERY_STRING="b=2&c=3"
省2
237: 2007/08/13(月)01:26 ID:xOKpCYRV(1) AAS
>>236
レスどうもです!

ちょっとうまく動かなかったので最初の "/" をとってこんな風にしてみました。

RewriteRule ^(.*/)([^/]+)/([^/]+)/$ $1?$2=$3 [QSA,N]
RewriteRule ^([^/]+)/$ index.php?a=$1 [QSA]

でも、下記のように変換されてしまって無限ループになってしまいました。
何が悪いんでしょうか?

1/b/2/c/3/ -> 1/b/2/?c=3
1/b/2//b/2/c/3/ -> 1/b/2//b/2/?c=3
1/b/2//b/2//b/2/c/3/ -> 1/b/2//b/2//b/2/?c=3
省4
238: JAPU ◆lVJAPUTeX. 2007/08/13(月)02:57 ID:??? AAS
.htaccess に書くと、たしかにそうなった。

httpd.conf なら問題無いんだが… 途中、こんなヘンテコな変換されるのが謎。
add path-info postfix: /usr/local/www/data/1/b/2/ -> /usr/local/www/data/1/b/2//b/2/c/3/

# ちなみに Apache 1.3.37
239: 2007/08/13(月)03:09 ID:??? AAS
.htaccessはRewriteBaseが必須。
240: JAPU ◆lVJAPUTeX. 2007/08/13(月)07:59 ID:??? AAS
mami# grep ^DocumentRoot /usr/local/etc/apache/httpd.conf
DocumentRoot "/usr/local/www/data"
mami# pwd
/usr/local/www/data
mami# cat .htaccess
RewriteEngine on
RewriteBase /usr/local/www/data
RewriteRule ^(.*/)([^/]+)/([^/]+)/$ $1?$2=$3 [QSA,N]
RewriteRule ^([^/]+)/$ index.cgi?a=$1 [QSA]

これじゃまずいんだっけ。
241: 2007/08/13(月)11:17 ID:d8YeW0fj(1) AAS
問題なさそうだけど。。。
242
(1): 2007/08/13(月)14:05 ID:??? AAS
RewriteBaseにセットする値はURL-path。
243: JAPU ◆lVJAPUTeX. 2007/08/14(火)01:02 ID:??? AAS
>>242
たしかにマニュアルみたらそう書いてありました。
が、RewriteBase / でも結果は変わらず。
244: 2007/08/14(火)01:45 ID:sYc3cRby(1) AAS
変換ログが怪しすぎるし、バグなのかなぁ。
245: 2007/08/23(木)14:25 ID:oRh+in4w(1) AAS
AA省
246: 2007/08/25(土)21:04 ID:mIpqfkg/(1) AAS
RewriteRule でどのパターンにも一致しない場合のルールでどうやればよいでしょうか?
247
(1): 2007/08/26(日)05:40 ID:??? AAS
YomisearchCGI版のカテゴリを静的化したいのですが、
参考になるページご存じの方教えて下さい
yomi.cgi?page=1&mode=kt&sort=ac_new&kt=01_03

/p1/kt/ac_new/01_03.html
こんな感じにしたいです
(もしくはもっと短く)
248: 2007/08/26(日)11:52 ID:6oSQJEbU(1) AAS
>>247
このスレみるだけでじゅうぶんでは。
どこを難しいと感じているのかわからないし。
249: 2007/10/03(水)14:46 ID:??? AAS
すみません質問させてください
WindowsXP SP2 Apache2.2.3でローカル鯖たててます。
mod_rewriteを使えるようにしたいのですが

・modulesディレクトリにmod_rewrite.soがあることを確認
・httpd.confのLoadModule setenvif_module modules/mod_rewrite.soのコメントアウトをはずす
・Apache再起動
の手順でやってもmod_rewriteが有効になりません。
任意のディレクトリに
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
省5
250
(1): 2007/10/03(水)15:17 ID:??? AAS
RewriteEngine On
RewriteRule .* index.php
まずこうしてmod_rewrite、文法どちらに問題があるのか切り分けてみなよ。

文法が間違ってるなら
RewriteLog /var/log/httpd/rewrite_log
RewriteLogLevel 9
としてログを見ながら原因を探る

RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
でいけるかもしれない。
251: 2007/10/03(水)15:34 ID:??? AAS
>>250
やってみたんですがあいかわらず404です…
文法間違いじゃなくてやっぱApacheの設定ミス…?
インストールしなおした方がいいんでしょうか。
252: 2007/10/03(水)17:31 ID:??? AAS
.htaccessで使うときはRewriteBaseが必須。
253: 2007/10/03(水)18:16 ID:??? AAS
う〜ん、
RewriteEngine on
RewriteBase /hoge/hoge/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9A-Za-z)]+)\.html$ index.php?$1 [L]
でやってみましたがうまく行きませんorz
.htaccess書き換えてもApacheの再起動はしなくていいんですよね?
254
(3): 2007/10/25(木)12:12 ID:??? AAS
AA省
255
(1): 2007/10/25(木)15:05 ID:??? AAS
>>254
>mod_rewriteって"?"以降を無視してしまうのでしょうか?
正解
>だったら、googleは"search?***"をどう実現してるのでしょうか?
searchがスクリプトファイル名
ファイルに絶対拡張子が必要なわけではない
1-
あと 431 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 1.279s*