【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
それではマターリ逝きましょう。
0124nobodyさん
2005/03/27(日) 12:31:30ID:???.htaccess質問コーナー Part3
http://pc5.2ch.net/test/read.cgi/hp/1105439192/
0125nobodyさん
2005/03/31(木) 15:39:06ID:???0126nobodyさん
2005/04/10(日) 14:34:04ID:???XOOPSでつくるサイトを
静的に見せる方法が分からない。
プログラム全くの素人だけど
でも、XOOPSで検索エンジンに引っかかるサイトが
作りたいわけなんだけど...
グーグルで調べてみたけど、
mod_rewrite使う方法だということが分かったが
どういうところを編集するのが分からんわけで。
0127nobodyさん
2005/04/10(日) 14:39:45ID:???http://219.57.24.78/
http://219.57.24.78/~ss.jpg
http://OMOIKANE/
http://OMOIKANE/~ss.jpg
0128nobodyさん
2005/05/09(月) 23:38:57ID:rb2ewZOk同一ホスト内だと問題ないんですが、書き換え先を外のドメインにするとうまくいきません。
http://AAA.com/hoge.html をクリックしたときに表示される内容は別ドメインにおいてある
http://BBB.com/hoge.html
にしたいのですが、Apacheが locationヘッダを吐くのでリダイレクトとなってしまいブラウザに
http://BBB.com/hoge.html
が表示されてしまいます。
下記の記述でなにがまずいのでしょうか? よろしくお願いします
RewriteEngine on
RewriteRule /(.*)$ http://BBB.com/$1 [L]
0129nobodyさん
2005/05/10(火) 00:13:28ID:0h89RmHcうぇwwwwwwwwwうはっwwwっおkwwwうぇwww
うはっwwwっうぇうぇwwwうぇwwwwww
wwwwwwwwwwwwwwwwwwwwwwwww
0130nobodyさん
2005/05/10(火) 07:33:24ID:???http上ドメイン名が変われば(別のhttpサーバに変えるには)リダイレクトしないと無理でしょう
コレは無理 ブラウザ->Apache(1)->Apache(2)->ブラウザ
0131nobodyさん
2005/05/10(火) 18:19:16ID:GC3gP9kTありがとうございます。やはり駄目みたいですね。
mod_proxyかませるしかないか・・・
0132nobodyさん
2005/06/02(木) 00:10:54ID:7p4TKpYJRewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9A-Za-z]+)/([0-9A-Za-z)]+)\.html$ hoge.php?var1=$1&var2=$2 [L]
------------------------------------------------------------------------------
...../test1/test2.html という仮想アドレスにアクセスしてきた
ユーザに対して、hoge.php?var1=test1&var2=test2
の結果を返したいので、上記のように.htaccessに書きましたが、
..../test2/test2.htmlにアクセスするとページがありませんエラーに
なります。他鯖だとこれでOKなのですが、さくらという鯖だと無理です。
さくら特有の何か?があるのか。上のような簡単なものでも
アパッチのバージョンが違うと、動作しない。なんてことがあるのでしょうか?
エロイ人、どうか教えて下さい。
0133nobodyさん
2005/06/02(木) 06:47:17ID:???0134132
2005/06/02(木) 20:34:15ID:7p4TKpYJですが、どうもうまくうごきません。
>>133
ありがとうございます。
そのようにやってみましたが、ダメみたいです。
さくらというレンタル鯖は
同じサイトでも2つのアドレスがあります。
一つは独自ドメイン。
もう一つは http://○○.sakura.ne.jp/というアドレスです。
こういうことも関係してエラーになるんだろうか・・・
0135nobodyさん
2005/07/05(火) 01:22:50ID:netfphaSsearch.cgi?dir=hoge&file=foo
のようなパラメータ付きのURLを
/hoge/foo/
のように書き換えたいんですが、これではうまくいきません。
RewriteRule ^search\.cgi\?dir=(.*)&file=(.*)$ /$1/$2/
いろいろ試しても ? が出てきた時点でマッチしないように思います。
ご存知の方、ぜひご教示お願い致します。
0136nobodyさん
2005/07/05(火) 23:37:37ID:???0137135
2005/07/06(水) 01:13:05ID:???はい、通常のmod_rewrite利用法とは逆の書き換えを
実現したいんです。
/hoge/foo/ を search.cgi?dir=hoge&file=foo みたいな
書き換えはきちんと動作するサーバ環境です。
気長にお待ちしております。
0138nobodyさん
2005/07/15(金) 10:24:40ID:yoPQBliE↓
http://hogehoge/123
に書き換えたいのですが、?に正規表現設定をマッチさせることができません。
ご教授願います。
0140nobodyさん
2005/08/05(金) 23:22:02ID:euh07aXu表示する書き換えを行いました。
RewriteRule ^([^/]+)/$ /search.cgi?key=$1 [L]
/hoge/ でアクセスすると search.cgi?key=hoge を返します。
続いて /hoge のようにディレクトリにスラッシュがない場合に、
スラッシュを補完しようと思って、以下のように書き換えると
無限ループを起こします。
RewriteRule ^([^/]+)$ /$1/ [R=301,L]
どう記述したら良いでしょうか。ご教示お願いいたします。
0141nobodyさん
2005/08/25(木) 01:01:54ID:???Apache はデフォルトで / 無しのリクエストに対して 301 を返し / を補完させるようになっている。
不要。
0142nobodyさん
2005/08/25(木) 09:50:51ID:???http://***.com/~test/index.php?id=10
というURLを
http://***.com/~test/10.html
と言う風にするには
RewriteEngine on
RewriteRule ^/~test/([0-9A-Za-z)]+)\.html$ /~test/index.php?id=$1 [L]
と書けばいいんですよね?しかし、表示されません・・。
リダイレクトとか他のアクションの場合は動くので、サーバやmod_rewriteに
問題があるとは考えられません・・。書き方がおかしいのでしょうか?
0143nobodyさん
2005/08/25(木) 15:27:54ID:???/a/1/b/2/c/3/d/4/e/5.html
↓
/index.php?a=1&b=2&c=3&d=4&e=5
パラメータ数は、可変にしたいのですが・・・
0145nobodyさん
2005/08/28(日) 11:49:42ID:???これでどうよ。
俺のローカルでは動いたが。
RewriteEngine On
RewriteRule ^a/([0-9]+)/b/([0-9]+)/c/([0-9]+)/d/([0-9]+)/e/([0-9]+)\.html$
/index.php?a=$1&b=$2&c=$3&d=$4&e=$5 [L]
ちなみに、改行するなよ。
無保証でヨロ。
0146nobodyさん
2005/08/28(日) 12:31:26ID:???あんたいい奴だな。けど143の質問ちゃんと読んでないよ。
ある程度パラメータ数の上限を決めて、個数ごとに145みたいなRewriteRuleを
書くしかないと思う。>>143
0147nobodyさん
2005/08/28(日) 13:36:40ID:???とやってPHP側で $_SERVER['PATH_INFO'] を分解するくらいしか・・・
0148nobodyさん
2005/08/28(日) 14:25:19ID:???mod_rewrite の正規表現だけでやれと言われると確かに厳しい
mod_perl で PerlTransHandler あたりをフックしてちゃちゃっと書き換えるなら割と楽にできる
0149nobodyさん
2005/08/28(日) 16:29:14ID:???いろいろレス感謝です。
パラメータの a、b、c・・・ は固定ではなく、他の文字に変わることが
あります。例えば、page、target などです。
>>146
やはりそれしかないでしょうか。
mod_rewrite でループ処理のような形でどうにか出来れば
いいかなと思ったのですが。
とりあえず、こんな感じのを沢山書こうとしています。
RewriteRule ^(.*)/(.*)/(.*)/(.*)\.html$ index.php?$1=$2&$3=$4 [L]
RewriteRule ^(.*)/(.*)\.html$ index.php?$1=$2 [L]
0150147
2005/08/28(日) 17:47:22ID:???そういや[N]があったな、忘れてた
RewriteRule ^([a-z0-9]+)/([a-z0-9]+)\.html index.php?$1=$2 [L,NC,QSA]
RewriteRule ^([a-z0-9]+)/([a-z0-9]+)/(.+)\.html $3.html?$1=$2 [N,NC,QSA]
0151nobodyさん
2005/08/28(日) 19:23:03ID:???0152nobodyさん
2005/08/29(月) 21:53:41ID:???RewriteCond %{HTTP_HOST} ^(apple|grape|orange)\.example\.com$
とするのと
RewriteCond %{HTTP_HOST} ^apple\.example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^grape\.example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^orange\.example\.com$
とする場合で、一般論としてどちらが高速でしょうか?
0154nobodyさん
2005/09/27(火) 17:41:19ID:???としたときに、robots.txtなどのいくつかのファイルはスキップさせたいのですが
どのようにすれば良いのでしょうか?
0155nobodyさん
2005/09/30(金) 19:04:43ID:???質問があります。
URLエンコードを行って日本語等が%XYの形式になったURLを含んでいるとき、
RewriteRule ^([0-9A-Za-z%]+)$ test.php?keyword=$1
などとしても404エラーになってしまいます。(日本語がないときは通常通りです。)
ルールの記述が間違っているのでしょうか。
エラーにならない方法をご存知でしょうか。お願いします。
0156nobodyさん
2005/09/30(金) 20:40:28ID:???まずマニュアルを読んで、それから細かいところを質問する姿勢を見せる。
0157nobodyさん
2006/01/15(日) 15:53:40ID:0othuuG9RewriteRule ^(.*)\.html$ test.cgi?$1
でうまくいったのに、自分のサーバーでは漢字とひらがながリライトできない。
記述の問題じゃないかも。
0158nobodyさん
2006/01/15(日) 16:02:20ID:???0159157
2006/01/16(月) 01:32:31ID:???まあ、Apache1.3から2にしたら、何の問題もなくリライトするようになったのでよしとする
0160nobodyさん
2006/01/20(金) 03:14:31ID:???なぜか"."(ドット)を使うと404になるのですが、回避する方法はないものでしょうか?
こっちだと動かないんだけど、
http://shinehage.com/072.sex → http://shinehage.com/index.cgi?072.sex
こっちだと動く
http://shinehage.com/072-sex → http://shinehage.com/index.cgi?072-sex
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9A-Za-z]+\.[0-9A-Za-z]+)$ index.cgi?$1 [L]
↑これではダメで、
↓こっちだと動く・・・
RewriteRule ^([0-9A-Za-z]+\-[0-9A-Za-z]+)$ index.php?$1 [L]
0161nobodyさん
2006/01/20(金) 12:45:18ID:???0162nobodyさん
2006/01/31(火) 13:32:42ID:???0163nobodyさん
2006/03/08(水) 21:55:04ID:F0LiHM5TRewriteBase /hogehoge
RewriteRule ^hoge/([^/]+)/$ ho.php?user=$1 [L]
とした場合、/hoge/username/?page=2 といった感じで引数userのほかに引数pageを読み込ませるにはどうしたらいいのでしょうか?
0164nobodyさん
2006/03/09(木) 08:30:08ID:???RewriteRule ^hoge/([^/]+)/$ ho.php?user=$1&%{QUERY_STRING} [L]
0165nobodyさん
2006/03/10(金) 01:49:51ID:wS29C68G/-/detail/=/
とかいうURLがあるけどあれもmod_rewrite?
ハイフンとかなんか意味あるのかな
0166nobodyさん
2006/03/13(月) 12:10:05ID:???RewriteEngine on
RewriteRule ^/dir/hoge/([0-9]+).html$ /dir/hoge.php?id=$1
として/dir/hoge/nn.htmlのアクセスを/dir/hoge.php?id=nnに
rewriteし、/dir/hoge.phpは動作するのですがQUERY_STRINGのid=nnが
hoge.phpに渡りません。なにかRewriteRuleの書き方におかしな点が
ありますでしょうか?
0167nobodyさん
2006/03/13(月) 12:14:32ID:???0169nobodyさん
2006/03/13(月) 13:19:52ID:???ちなみにhoge.phpで参照できる'REQUEST_URI'は
ブラウザ送信された/dir/hoge/nn.htmlがそのまま来ますので
hoge.php側で何とかできそうですが、
腑に落ちないのとhoge.phpを変更したくないので
設定に落度があるのならそれで解決したいと考えています。
よろしくお願いします。
0171nobodyさん
2006/03/13(月) 14:37:04ID:???よくわからなくなってきました。
RewriteEngineとRewriteRuleをコメントにしても
/dir/hoge/nn.htmlでhoge.phpが呼び出されます。
別の次元でRewriteRuleが効いているようですが
心当たりなしでパニック中。
0173nobodyさん
2006/03/25(土) 15:58:49ID:rUjENMuu別ポートにもう一つ設置した445ポートの場合、
http://www.example.com:445/
↓
https://www.example.com:445/
にリダイレクトしたいのですが、RewriteRuleとRewriteRuleを
どのように書いたらいいでしょうか?
0174nobodyさん
2006/04/06(木) 05:28:11ID:???問題をvar_dumpを使って入ってきたパラメーターだけを表示するプログラムtest.phpにまとめてみました。
あと私のところで使ってる文字コードはUTF-8
<?
var_dump($_SERVER["QUERY_STRING"]);
echo "<br>\n";
var_dump($_GET);
$param = urlencode("coffee&tea");
$directUrl = "http://hoge.go.jp/test.php?keyword=". $param;
$rewriteUrl = "http://hoge.go.jp/". $param. "/";
echo "<br>\n";
echo "case 1 <a href=\"". $directUrl ."\">direct_url</a><br>\n";
echo "case 2 <a href=\"". $rewriteUrl ."\">rewrite_url</a><br>\n";
?>
で、.htaccessはこんな感じ
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} ^/(.*)/$
RewriteRule ^(.*)/$ /test.php?keyword=$1 [L]
0175nobodyさん
2006/04/06(木) 05:28:46ID:???そのURL(自分自身なわけだけど)に飛ぶと以下の文字列を吐き出す
string(20) "keyword=coffee%26tea"
array(1) { ["keyword"]=> string(10) "coffee&tea" }
これはOK。これにrewriteを噛ましたい。
問題のcase 2、rewrite_urlの場合http://hoge.go.jp/coffee%26tea/を生成。
飛ぶとmod_rewrite補足され、変換される。以下ログから抜粋
(3) [per-dir /var/www/hoge.go.jp/] applying pattern '^(.*)/$' to uri 'coffee&tea/'
(4) RewriteCond: input='/coffee&tea/' pattern='^/(.*)/$' => matched
(2) [per-dir /var/www/hoge.go.jp/] rewrite coffee&tea/ -> /test.php?keyword=coffee&tea
(3) split uri=/test.php?keyword=coffee&tea -> uri=/test.php, args=keyword=coffee&tea
そのURLに飛ぶと以下の文字列を吐き出す
string(18) "keyword=coffee&tea"
array(2) { ["keyword"]=> string(6) "coffee" ["tea"]=> string(0) "" }
%26がmod_rewriteで&にデコードされちゃってteaが引数名になっちゃうよ・・・
対策法ご存知の方教えてください・・・あるいはどこか設定が悪いのか・・・
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大文字、小文字の区別なく表示させたいのですが、全くうまくいきません、いい案をお持ちの
方いたらご教示お願いしたいです。
■ このスレッドは過去ログ倉庫に格納されています