【Apache】mod_rewriteについて語るスレ
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
02/06/11 19:29ID:wH0rV3+D基本的な内容は↓ページを読むこと。
http://japache.infoscience.co.jp/rewriteguide/
http://japache.infoscience.co.jp/japanese_1_3_6/manual/mod/mod_rewrite.html
それではマターリ逝きましょう。
0176nobodyさん
2006/04/06(木) 08:11:14ID:???$rewriteUrl = "http://hoge.go.jp/". urlencode($param). "/";
0177nobodyさん
2006/04/06(木) 08:59:39ID:???あー、なるほど、mod_rewriteにはurlencodeを2重に仕込むのね。
mod_rewriteを延々と弄っててきがつかんかった。
確認取ったところ上手く動きました。
この方法でやってみます。サンクス。
しかしmod_rewrite側での対応は設定はやはり難しいのかなぁ・・・
PHPに入ってくるエンコード状態と出て行くエンコード状態がrewrite使う使わずに関わらず
同じであれば見通しがいいかなーとか思ってたので。
0178nobodyさん
2006/04/22(土) 02:52:49ID:IkBNOhRq>このフラッグは、置き換えるのではなく、存在するものに対して、
>rewrite エンジンが代用文字列にあるクエリー文字列にアペンドするようにします。
>rewite ルールでクエリー文字列にデータを追加したいときに使ってください。
とあるのですが、実挙動としてどのようになるのか、よくわかりません。
いったいどうなるのでしょうか?
0179nobodyさん
2006/04/22(土) 13:58:50ID:???読んで字の如くそうなる。
0180nobodyさん
2006/04/23(日) 02:46:10ID:???実挙動としてどうなるのか、サンプルなどがあるとわかりやすいんですけど、、
0181nobodyさん
2006/04/24(月) 11:05:56ID:Z/7vX4oM↓
/hoge/modname/index.php?ReserveForm
といった感じにrewriteしたいのですが、どうもうまくいきません。
RewriteRule !hoge/([^/]+/)ReserveForm\.do $1/index.php
とやるだけで、internalエラー(無限ループ)になります。
modnameの部分を$1に置換するにはどうやればいいのでしょうか。
0185nobodyさん
2006/06/15(木) 09:05:30ID:p9raRrGDTagを、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自体は動いてます。
見直す点等アドバイスいただければ幸いです。
0186185
2006/06/15(木) 09:07:01ID:???実際に飛んでほしい先は
http://domain.tld/cgi-bin/mt/mt-xsearch.cgi?blog_id=2$search_key=Tagwire&delimiter=,&search=tagname
です。
0187nobodyさん
2006/06/24(土) 20:11:15ID:usPjod1hに書き換えたいのですが、
どうすればいいのですか?
0188nobodyさん
2006/06/25(日) 09:19:26ID:???0189nobodyさん
2006/07/29(土) 17:15:32ID:???httpdはRHEL3のインストーラーにしたがって、そのままインストールしました。
http://www.domain.com/http://www.google.co.jp
↓
RewriteEngine on
RewriteRule (..*) $1 [L]
↓
http://www.google.co.jp
アドバイスをお願いします。
0191nobodyさん
2006/08/07(月) 16:21:58ID:???Apache httpd の mod_rewrite モジュールにおけるバッファオーバーフローの脆弱性
ttp://jvn.jp/cert/JVNVU%23395412/index.html
何が悪かったの?
0192nobodyさん
2006/08/19(土) 09:19:31ID:AnvEHxgI逆引きできない人を別アドレスへ飛ばしたいのですが
「REMOTE_HOSTが数字だけの時」という条件はどう書けばいいでしょうか?
またproxy接続の人をmod_rewriteだけでなるべく効果的に(完全でなくてもいい)
別アドレスへ飛ばしたいのですがどの環境変数にRewriteCondをどう書けばいいでしょうか?
初心者ですがよろしくお願いします。
0193nobodyさん
2006/08/29(火) 18:50:13ID:qBkjqVymhttp://example.com/?hogehoge
にリダイレクトさせるために、.htaccessに
RewriteEngine on
RewriteRule ^(.+)$ /?$1 [L]
と書いたのですが、500エラー出てうまくいきません。
アドバイスお願いします・・・
0194nobodyさん
2006/09/05(火) 21:59:51ID:Hy3lSiWg使っているサーバーにて、サーバー管理人さんにmod_rewriteをONにしてもらったのですが、
きちんと動作することを確認するサンプルphpや.htaccessをご存知ないですか?
サーバー管理人さんが忙しいようでなかなか連絡がつきません、
どうにか動作確認をしたいのですが。。。
0196nobodyさん
2006/09/05(火) 23:53:40ID:Hy3lSiWgとあるCMSプラグインを説明書に従ってインストールします。
0197nobodyさん
2006/09/06(水) 16:18:20ID:???0198nobodyさん
2006/09/06(水) 16:50:16ID:???そういわれると思ったよ。
標準的な他サーバー3つでプラグイン動いてるし、
プラグインの動作に必要なのはmod_rewriteのみだし。
CMSの動作は他にいれたサイトがずっと安定してるし。
こっちが大変だと思ってるけどもう実装は諦めた。
断る。
0199nobodyさん
2006/09/06(水) 22:30:09ID:ogWsQap5入力文字列(URL)を入力したら
htaccessにしたがって
どうURL変換されるか表示されるの。
そうすれば大幅に敷居が下がると思うんだけど。
0200nobodyさん
2006/09/07(木) 09:25:25ID:???> mod_rewriteエミュレータ作ろうと思うんだけどどうよ?
> 入力文字列(URL)を入力したら
> htaccessにしたがって
> どうURL変換されるか表示されるの。
> そうすれば大幅に敷居が下がると思うんだけど。
すっげぇ期待してます。
0201nobodyさん
2006/09/07(木) 17:01:33ID:???まあ便利だろうけどdebug onにすれば大体事足りるからね
0202nobodyさん
2006/10/21(土) 03:17:29ID:KzoqADxqmod_rewriteを使って、tomcat上で動くstrutsを用いたアプリの
URLを書き換えようとしているのですが、うまくいきません。。
(URLがrewriteされる前に、tomcatのほうに制御がいってしまい、うまく書き換えられない)
どこを設定すればよいでしょうか?
0203nobodyさん
2006/10/22(日) 17:32:12ID:???0204nobodyさん
2006/10/22(日) 21:14:50ID:???佐賀県庁・佐賀県警・談合・痴漢・情報漏洩などの内容だ。
銀行が潰れるとしたデマが回り騒ぎが起きたこともある。
このような書き込みは慎むべきだ。
被害防止のため常駐するスレに啓蒙してくれ。
0205nobodyさん
2006/12/14(木) 00:36:31ID:HPgduaQomod_rewriteのRewriteRuleでprofile.cgiからprofile.htmlへURLの書き換えをしようとしてるで酢
書いたルールが以下の通りで酢
RewriteRule ^(.*)\.cgi?(.*) $1.html?$2 [L]
でも「profile.htmlなんてねぇよ」って狐火に言われるんで酢
mod_rewriteってURLだけの書き換えって出来ないんで酢か?
回答お願いしま酢
0206nobodyさん
2006/12/14(木) 14:03:45ID:???0208nobodyさん
2006/12/15(金) 02:34:56ID:???htmlにアクセスしたときcgiを実行するようにすればいいんだよ。
0209nobodyさん
2006/12/16(土) 00:15:59ID:???0210nobodyさん
2007/03/03(土) 20:36:20ID:???正規表現の質問なのですが、
mod_rewriteで、
"/media.*"以外へのリクエストをすべて"/index.php"へ飛ばすにはどうすれば良いでしょうか?
宜しくお願いします。
0211nobodyさん
2007/03/04(日) 12:24:43ID:???RewriteEngine on
RewriteCond %{REQUEST_URI} !^/media
RewriteRule (.*) /index.php [L]
!^/media の ^ はいらんかったかな…
0212nobodyさん
2007/03/06(火) 13:08:27ID:???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]
うまい方法はないでしょうか?
0213212
2007/03/06(火) 14:31:15ID:???RewriteEngine on
RewriteCond %{SERVER_PORT} ^443
RewriteCond %{HTTP_HOST} ^example\.com
RewriteRule (.*)$ https://www.example.com$1 [R=301,L]
SSL環境の設定ファイルが違いました。。。orz
0214nobodyさん
2007/03/07(水) 01:06:15ID:???RewriteRule ^([0-9A-Za-z_]+)/$ /index.php?mod=user&act=$1 [L]
半角英数字の正規表現にアンダーバーを入れるにはどうすればいいでしょうか?
0215214
2007/03/07(水) 01:09:00ID:???ただapacheを再起動していなかっただけぽ
0216nobodyさん
2007/03/10(土) 17:38:22ID:VXyj5Dh3で m/2/http://wwww.example.com/ として表示させることは可能でしょうか?
0217nobodyさん
2007/05/25(金) 00:26:35ID:4kvXKUJVhttp://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にリダイレクトされてしまいました。
いったいどこが間違っているのでしょうか?
0220nobodyさん
2007/05/26(土) 13:58:00ID:llpEpcc0mod_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/ となる。
0221nobodyさん
2007/05/26(土) 13:59:31ID:llpEpcc0UserDir のサブディレクトリへチルダ無しでアクセスした場合にも、スラッシュ補完が行われるようにしたい。
色々試した結果、下記のように書き換えると 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 を書けばよろしいでしょうか。
アドバイスをお願い致します。
0222nobodyさん
2007/05/29(火) 00:06:05ID:???なんかこんな感じじゃだめかね?
適当
0223サレ
2007/06/21(木) 20:21:18ID:yAR7j5RX大文字、小文字の区別なく表示させたいのですが、全くうまくいきません、いい案をお持ちの
方いたらご教示お願いしたいです。
0224nobodyさん
2007/07/06(金) 23:52:39ID:???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]
0225nobodyさん
2007/07/12(木) 15:02:09ID:5UK7fMycRewriteCond ${REQUEST_URI} !-d
RewriteRule ^(.*hoge)/([0-9]+)/$ $1?number=$2 [L]
これでURL変換はうまくいってるんですが、ブラウザのアドレス欄には変換後の
http://〜hoge/?number=10
というのが表示されてしまいます。
これを変換前のURLのままにしておくにはどうすれば良いのでしょうか?
0226nobodyさん
2007/07/12(木) 18:23:43ID:???aaa.example.comとexcample.comは同一のサーバーです。
0228nobodyさん
2007/07/19(木) 00:53:42ID:???RewriteRule /(.+)\.(.+)$ /$1.A.$2
既存の拡張子の前に.Aを挿入しようとしていますが、$2に前置するピリオドが
悪さしているらしく、うまく動きません。どうすればよいでしょうか。
0229228
2007/07/19(木) 01:05:11ID:k0bvHpUP0230nobodyさん
2007/07/19(木) 01:50:07ID:???0231228
2007/07/19(木) 02:11:07ID:???.はそもそもエスケープする必要あるのが普通でしょうか。
.Aの挿入はおいといて、$1.$2もだめでしたが、$2.$1は大丈夫でした。
何か他の理由でしょうか。
とりあえず、$2にピリオドごと格納して解決しました。
が、なぜ上記のがだめなのか気になって夜も眠れません。
0232228
2007/07/19(木) 23:31:43ID:???Rewriteの動きをよく理解できてないようですので勉強します。
0233nobodyさん
2007/08/12(日) 03:55:49ID:???http://example.com/1/ ⇒ example.com/index.php?a=1
http://example.com/1/b/2/ ⇒ example.com/index.php?a=1&b=2
http://example.com/1/b/2/c/3/ ⇒ example.com/index.php?a=1&b=2&c=3
http://example.com/1/b/2/c/3/d/4/ ⇒ example.com/index.php?a=1&b=2&c=3&d=4
・
・
・
パラメータは可変長で考えています。
ループを使ってすっきり書ければいいと思うのですがなかなか思いつきません。
よろしくお願いします。
0234nobodyさん
2007/08/12(日) 03:59:41ID:YzqJNCOc0236JAPU ◆lVJAPUTeX.
2007/08/12(日) 19:58:53ID:???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のルール適用
path = "/index.cgi", QUERY_STRING="a=1&b=2&c=3"
0237nobodyさん
2007/08/13(月) 01:26:53ID:xOKpCYRVレスどうもです!
ちょっとうまく動かなかったので最初の "/" をとってこんな風にしてみました。
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
1/b/2//b/2//b/2//b/2/c/3/ -> 1/b/2//b/2//b/2//b/2/?c=3
・
・
・
0238JAPU ◆lVJAPUTeX.
2007/08/13(月) 02:57:50ID:???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
0239nobodyさん
2007/08/13(月) 03:09:59ID:???0240JAPU ◆lVJAPUTeX.
2007/08/13(月) 07:59:33ID:???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]
これじゃまずいんだっけ。
0241nobodyさん
2007/08/13(月) 11:17:43ID:d8YeW0fj0242nobodyさん
2007/08/13(月) 14:05:05ID:???0243JAPU ◆lVJAPUTeX.
2007/08/14(火) 01:02:27ID:???たしかにマニュアルみたらそう書いてありました。
が、RewriteBase / でも結果は変わらず。
0244nobodyさん
2007/08/14(火) 01:45:16ID:sYc3cRby0245nobodyさん
2007/08/23(木) 14:25:41ID:oRh+in4whttp://1.example.com/ ⇒ example.com/index.php?a=1
http://1.example.com/b/2/ ⇒ example.com/index.php?a=1&b=2
http://1.example.com/b/2/c/3/ ⇒ example.com/index.php?a=1&b=2&c=3
http://1.example.com/b/2/c/3/d/4/ ⇒ example.com/index.php?a=1&b=2&c=3&d=4
0246nobodyさん
2007/08/25(土) 21:04:57ID:mIpqfkg/0247nobodyさん
2007/08/26(日) 05:40:50ID:???参考になるページご存じの方教えて下さい
yomi.cgi?page=1&mode=kt&sort=ac_new&kt=01_03
↓
/p1/kt/ac_new/01_03.html
こんな感じにしたいです
(もしくはもっと短く)
0248nobodyさん
2007/08/26(日) 11:52:46ID:6oSQJEbUこのスレみるだけでじゅうぶんでは。
どこを難しいと感じているのかわからないし。
0249nobodyさん
2007/10/03(水) 14:46:52ID:???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
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9A-Za-z)]+)\.html$ index.php?$1 [L]
って書いた.htaccess置いてるんですが404エラーになってしまって。
同じものをwebサーバにうpすると普通に動作するので
Apacheの設定が出来てないんだと思うのですが自分では対処不能ですorz
0250nobodyさん
2007/10/03(水) 15:17:11ID:???RewriteRule .* index.php
まずこうしてmod_rewrite、文法どちらに問題があるのか切り分けてみなよ。
文法が間違ってるなら
RewriteLog /var/log/httpd/rewrite_log
RewriteLogLevel 9
としてログを見ながら原因を探る
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
でいけるかもしれない。
0251nobodyさん
2007/10/03(水) 15:34:01ID:???やってみたんですがあいかわらず404です…
文法間違いじゃなくてやっぱApacheの設定ミス…?
インストールしなおした方がいいんでしょうか。
0252nobodyさん
2007/10/03(水) 17:31:53ID:???0253nobodyさん
2007/10/03(水) 18:16:18ID:???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の再起動はしなくていいんですよね?
0254nobodyさん
2007/10/25(木) 12:12:54ID:???例)ttp://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=2ch&num=50
○現在の.htaccessの設定
RewriteEngine on
RewriteRule ^([0-9A-Za-z)]+)$ /index.php?mode=$1
RewriteRule ^([0-9A-Za-z)]+)\?(..*)$ /index.php?mode=$1&$2
○検索画面TOPページ(キーワードや表示数を設定し、検索ボタンで検索開始)
アクセス ttp://www.hogehoge.jp/search
内部 index.php?mode=search ←実現済み
○検索結果表示ページ(検索TOPで設定した検索結果を表示)
アクセス ttp://www.hogehoge.jp/search?q=2ch&num=50
内部 index.php?mode=search&q=2ch&num=50 ←これがうまくいかない
q=キーワード, num=検索表示数
問題は、検索結果表示ページでGET値が渡されず、"index.php?mode=search"となってTOPへ戻ってしまうこと。
mod_rewriteって"?"以降を無視してしまうのでしょうか?
だったら、googleは"search?***"をどう実現してるのでしょうか?
どうかご意見ください。
0255nobodyさん
2007/10/25(木) 15:05:20ID:???>mod_rewriteって"?"以降を無視してしまうのでしょうか?
正解
>だったら、googleは"search?***"をどう実現してるのでしょうか?
searchがスクリプトファイル名
ファイルに絶対拡張子が必要なわけではない
0256254
2007/10/25(木) 15:16:18ID:???RewriteRule ^([0-9A-Za-z)]+)\?(..*)$ /index.php?mode=$1&$2
は
RewriteRule ^([0-9A-Za-z)]+)$ /index.php?mode=$1&%{QUERY_STRING}
で出来るかも
0258nobodyさん
2007/10/27(土) 00:37:29ID:zm9qnQ5v「このように性器表現で痴漢すれば、性的なURLでアクセスできるようになります」
0259nobodyさん
2007/10/27(土) 00:38:51ID:???0260nobodyさん
2007/10/27(土) 18:02:43ID:PPo48ltM0261nobodyさん
2007/10/28(日) 09:25:28ID:???( ´ω`) …
(⊃⊂)
(´ω`;)⊃ アウアウ!!
⊂ミ⊃ )
/ ヽ
0262nobodyさん
2007/11/14(水) 12:06:40ID:ng0LolU1にアクセスした場合に
http://www.hoge.jp/search.php?cid=00000001
を実行させる環境を実現しようと思い
RewriteRule ^\/c([0-9]+)/?$ /ctgr_search.php?cid=$1
と書いているんですが
http://www.hoge.jp/c00000001
でアクセスすると正常に動作するのですが、
http://www.hoge.jp/c00000001/
と最後にスラッシュを入れると404エラーになってしまいます
スラッシュがついていてもついていなくても
同じ動作にしたかったんですけど
何が間違ってるのか見当もつかないんですが、分かる方
教えて下さい><
0263nobodyさん
2007/11/19(月) 23:48:17ID:???/index.html まで書いたり、
ファイルが無いことを条件にもっとゆるいrule を作ってみてはどうでしょう?
RewriteCond %{REQUEST_FILENAME} !-f [OR]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule * /ctgr_search.php?cid=$1
0264nobodyさん
2007/11/20(火) 10:55:41ID:???0265nobodyさん
2007/11/29(木) 11:22:36ID:oBkh+T4G/から始まる絶対パスで開発を進めていたのですが、一時的にサブフォルダ内で
動作させる必要が出てきました。
/img/top/title.gif"
のように記述しているリンクをRewriteを使い、
/hoge/img/top/title.gif"
と変更することってできますか?
ご存知の方、教えて頂けると助かります。
0266nobodyさん
2007/11/29(木) 21:56:07ID:???環境もあるみたいだし、やってみれ
0267265
2007/11/30(金) 10:28:04ID:cjIfOe/2いろいろ調べて、こんか感じでそれっぽい感じにできました。
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_REFERER} http://hoge.jp/hoge/(.*)$
RewriteRule (.*) /hoge/$1 [R,L]
0268nobodyさん
2007/12/02(日) 08:43:40ID:???Request_URIで判別した方がいいよ
0269nobodyさん
2007/12/20(木) 18:10:10ID:???のようなリクエストを受け取った時に、
/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
といきたいんだけど、それをどうやったらできるのかわからないのです。
/wiki/ がなく、ドメイン直下ならば、分離しないですむので、
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}html%{REQUEST_URI} -f
RewriteRule .* %{DOCUMENT_ROOT}html%{REQUEST_URI} [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)\.html$ index.php?$1 [QSA,L]
こんなかんじでいけるのですが。
0270nobodyさん
2007/12/20(木) 21:19:10ID:???RewriteBase /wiki
RewriteRule ^(.*)\.html$ $1 [C]
RewriteCond %{REQUEST_FILENAME}.html !-f
RewriteRule ^(.*)$ /wiki/index.php?$1 [L]
とやって
http://example.com/wiki/test1/test2.html
のようにアクセスしてみたら
みたら、index.php の引数に
test1/test2
ではなく
test1/test2/test2.html
という値が入ったのですが、これは一体どういう理屈でしょうか?
test1/test2 に分離できるかと思ったのですが。
0271nobodyさん
2008/01/16(水) 16:18:40ID:???ってやったら
/aa/bb/ は /aa/index.php?i=bb
になったけど
/aa/bb/cc は /aa/index.php?i=bb/cc
変わらなかったんだけど/はだめなの?
0272nobodyさん
2008/01/23(水) 22:17:35ID:iTWduqjMというふうに301リダイレクトしたいのですが、
RewriteEngine On
RewriteRule ^/aaa/?page=([0-9A-Za-z]+)$ /aaa/index$1.html [R=301,L]
で上手くいかないのですが、だれかご教授ねがいないでしょうか?
0273nobodyさん
2008/01/24(木) 14:33:10ID:???0274nobodyさん
2008/01/24(木) 20:16:55ID:???RewriteRule ^([A-Za-z0-9-/]+)/?$ /test/$1 [L]
ってやってるんですけど、元から実在するURIが渡されるとrewriteされません。
例えば、hogeへリクエストがあると/test/hogeにrewriteされるんですが、
testへリクエストがあるとtestのままで/test/testとなってくれません。
このようにするにはどうすればいいんでしょうか。
0275nobodyさん
2008/01/27(日) 15:53:17ID:???■ このスレッドは過去ログ倉庫に格納されています