タグ

mod_rewriteに関するtyoro1210のブックマーク (10)

  • mod_rewriteの正規表現でPerl拡張正規表現の文字クラスを使って嵌った。 - ぐらめぬ・ぜぷつぇんのはてダ(2007 to 2011)

    最初、こんなの書いてたんですよ。 RewriteRule ^(\w)+$ index.php?mdl=$1&%{QUERY_STRING} [L]で、Windows版のApache2ではまともに動いてたんですが、LinuxのApache1.3にあげたら動かなくなって「え〜〜??」となってたんですが。 Apache 1.3 : POSIX正規表現 Apache 2.0 : Perl互換正規表現(PCRE) だったのんですね。で、当然"\w"文字クラスはPerl互換正規表現でサポートされているもので、POSIXには無い。 ・・・やられた。そーゆーことかー・・・。結局次のように修正。 RewriteRule ^([0-9a-zA-Z_,\-\.])+$ index.php?mdl=$1&%{QUERY_STRING} [L]うーん、"(.+)"でも良かった気がするのだけれど、まぁ、いっか。 Pa

    mod_rewriteの正規表現でPerl拡張正規表現の文字クラスを使って嵌った。 - ぐらめぬ・ぜぷつぇんのはてダ(2007 to 2011)
  • mod_rewriteの考え方。 - こせきの技術日記

    http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html を見ながら。 URLが正規表現(A)にマッチし、かつ 文字列(B)が条件(C)を満たす場合に、 URLを(D)に書き換える。 というのが基。 RewriteRule URLが(A)の正規表現にマッチしたら(D)で書き換える。 正規表現(A)は、リライトを実行するかどうかの条件(真偽値)であって、置換 url =~ s/(A)/(D)/ ということではない。たとえば、以下のような正規表現でリライトされる。 Google Code Search # 1文字マッチしたらリライト実行。空文字列でなければ実行する。 RewriteRule . index.php [L] Google Code Search # 先頭にマッチしたらリライト実行。常に実行する。 RewriteRule ^ -

    mod_rewriteの考え方。 - こせきの技術日記
    tyoro1210
    tyoro1210 2014/07/23
    よく整理されている
  • mod_rewriteの基本を再確認 - noopな日々

    mod_rewriteで設定を行ったのですが、意外にはまったので再確認してみます。基的な書き換えなんですけどね。 やりたかったことは、フレームワーク等でおなじみの処理を少し拡張して、探索対象をドキュメントルート外のユーザーディレクトリも含めるというものです。 public以下はデフォルトのファイルを用意しておき、userは独自にアップしたファイルで動作を変更できるといったモデルです。ただし、userにはphpcgiの実行はさせたくないので、.phpを置くディレクトリには触らせないというのが原則になります。 簡単そうだったのですが、いくつか躓きました。 ディレクトリ構造はこんな感じ root ├───public │ │ index.php │ │ │ └───styles │ base.css │ some.css │ └───users └───foo └───public └───

    mod_rewriteの基本を再確認 - noopな日々
  • パラ付URLをパラ無URLに変更

    CMSにもよるけどトップページでも引数がつく場合がある。 「/」止めでページは表示されるんだけど、他のページからトップへリンクをすると引数がつく。 で、SEO的にはリンクで使うURLは出来る限り統一させるってのがある。 ※「http://www.hoge.com/」のトップページへのリンクを「/」有りの「http://www.hoge.com/」、「/」無しの「http://www.hoge.com」、ファイル名を記載した「http://www.hoge.com/index.html」って感じでバラバラにしないってこと。 冒頭でもいった通りCMSにもよるけどトップページでも引数がつく場合があるんだ。 下記の例だとURLに「option=com_content&view=frontpage&Itemid=1」(トップページへのリンクのURL)ってのがつく場合は「/」に301リダイレクトする。

  • mod_rewriteで503 - Do You PHP はてブロ

    ちょっと気になったので。。。 最初、ここら辺のすべての処理をmod_rewriteだけで実現できるかなと思ったのですが、残念ながら、mod_rewriteでは300番系のエラーを出すことができますが、503のエラーは出せないようなのでさくっと簡単なものを作るの「には」便利とかいわれてるPHPで、さくっと、503を出すことにしました。 mod_rewriteのRフラグではステータスコードを一緒に指定できます。mod_rewrite - Apache HTTP Server Version 2.2にも 'redirect|R [=code]' (force redirect) Prefix Substitution with http://thishost[:thisport]/ (which makes the new URL a URI) to force a external redir

    mod_rewriteで503 - Do You PHP はてブロ
  • http://wiki.bit-hive.com/tomizoo/pg/mod_rewrite%20-%20QSA%EF%BF%BD%D5%A5%E9%A5%B0

  • Apache URL Rewriting Guide

    his document は http://www.apache.org/docs/mod/mod_rewrite.html にある Apache Group によるオリジナルの mod_rewrite マニュアルを補足するものです。ウェブマスターが普段、実際に直面している典型的な URL-based の問題を、mod_rewrite でどのように解決するかを記述しています。URL の rewriting ruleset を設定することによってそれぞれの問題を解決する方法を詳述してあります。 Table Of Contents はじめに 解決策 URL レイアウト Canonical URLs Canonical Hostnames DocumentRoot の移動 ディレクトリのスラッシュの解決 均一な URL 配置をした ウェブ・クラスタ 異なるウェブサーバへのホーム・ディレクトリの移

  • Messala.net » mod_rewrite で DocumentRoot 以外の領域(例えば Alias)でルールを指定する

    /test/index.html の実ファイルは存在しない。/test/path/to/index.html が表示される予定だったが、上記のルールではダメ。ファイルシステム上のフルパスだと /path/to/test/path/to/index.html ではなく、/usr/local/apache2/htdocs/test/path/to/index.html を表示しようとする。こちらもないので 404 で返ってくるだけ。 成功時の RewriteRule 上記のように PT フラグを追加すると Alias の方を探して表示してくれる。最初環境変数 SCRIPT_NAME が /usr/local/apache2/htdocs/test/path/to/index.html を向いていたので E フラグ使って環境変数上書きしようとしたが失敗していた。最初から PT 使っていれば時間消

  • Apache module mod_rewrite

    URL を操作するためのスイス製のアーミーナイフ、mod_rewrite へようこそ! このモジュールは、(正規表現パーサに基づく)ルールベースの 書き換えエンジンを使い、要求された URL を適宜書き換えます。 サポートするルールの数、および各ルールを適用する際のルール条件 の数に制限はなく、当にフレキシブルでかつパワフルな URL 操作 メカニズムを提供します。この URL 操作に先立ち、次のようにいろいろな 評価を行なうことができます。たとえばサーバ変数、環境変数、HTTP ヘッダ、 タイムスタンプ、さらに外部データベースの検索結果までを評価の対象として、 各種のフォーマットを使った粒度の高い URL マッチングを実現できます。 このモジュールは、サーバ単位のコンテキスト (httpd.conf) およびディレクトリ単位のコンテキスト (.htaccess) において (PATH-

  • Linux/Apache/¥â¥¸¥å¡¼¥ë/mod_rewrite/°Üž¥ê¥À¥¤¥ì¥¯¥È - cubic9.com

    http://example.com/foo/ °Ê²¼¤ËÊ£¿ô¤Î¥Ú¡¼¥¸¤¬¤¢¤Ã¤¿¤È¤·¤Þ¤¹¡£¤³¤Î¥Ú¡¼¥¸¤ÎURL¤¬ http://example.com/hoge/ °Ê²¼¤ËÊѤï¤Ã¤¿¤Î¤Çmod_rewrite¤ò»È¤Ã¤Æ¥ê¥À¥¤¥ì¥¯¥È¤·¤¿¤¤¤È¤·¤Þ¤¹¡£ ¤½¤ÎÊýË¡¤Ï¥Ý¥ê¥·¡¼¤Ë¤è¤Ã¤Æ¼¡¤ÎÆó¤Ä¤Ëʬ¤±¤é¤ì¤Þ¤¹¡£ ¥ê¥À¥¤¥ì¥¯¥È¸å¥¢¥É¥ì¥¹¥Ð¡¼¤Ë¤Ï¥ê¥À¥¤¥ì¥¯¥ÈÀè¤ÎURL¤òɽ¼¨¤·¤¿¤¤ .htaccess Options FollowSymLinks RewriteEngine on RewriteRule ^foo/(.+)$ hoge/$1 [R=301,L] ¥ê¥À¥¤¥ì¥¯¥È¸å¥¢¥É¥ì¥¹¥Ð¡¼¤

  • 1