• 締切済み

mod_rewriteの書き方について

よろしくお願いします。 サーバーをhttp://80codeを使っています。 今回、mod_rewriteを使って静的アドレスにしようとしていますが、 404エラー(見つかりません)がでてしまい、うまく表示されません。 設定が間違っていますでしょうか? http://repo.teki2.com/に両方のファイルとも設置しています。 接続しに行っているアドレスは、http://repo.teki2.com/1/ です。 http://repo.teki2.com/index.php?mode=1 だとうまくいきます。 .htaccessの内容 RewriteEngine on RewriteRule ^/([0-9a-zA-Z]+)/$ /index\.php?mode=$1 [L] index.phpの内容 <?php echo $mode; ?> よろしくお願いします。

  • CGI
  • 回答数1
  • ありがとう数0

みんなの回答

  • is907
  • ベストアンサー率55% (5/9)
回答No.1

そのサーバー上で mod_rewrite を使えることは確認してありますか? サーバー自体に mod_rewrite が組み込まれていても、.htaccess には書けない可能性もあります。 また、RewriteLog でログを取って、どこが上手く行かないのか確認する方法もあります。

参考URL:
http://www.net-newbie.com/trans/mod_rewrite.html
hola1973
質問者

補足

お返事ありがとうございます。 一応80codeは、mod_rewrite使えるとアナウンスしておりますので、 大丈夫だと思います。 http://www.80code.com/packages-ja.html どこがうまくいかないか確認する方法を試してみたいと思います。

関連するQ&A

  • CentOSでhtaccessを使用してmod_rewrite

    CentOSで、htaccessを使用してmod_rewriteを利用したいのですが、いまいちどうしたらいいのかがわかりません。 動的URLを静的URLに変換したく、 htaccessに RewriteEngine on RewriteRule ^([0-9A-Za-z_]+)/$ index.php?t=$1 [L] と書きこみました。 すると404エラーがでます。 試しに #RewriteEngine on RewriteRule ^([0-9A-Za-z_]+)/$ index.php?t=$1 [L] とコメントアウトしたところ、通常に表示されました。 RewiteEngine on が何かしらの影響を与えていると思うのですが、 対策がよくわからないので質問いたしました。 ちなみにhttpd.confの設定は完了しています。 LoadModule rewrite_module modules/mod_rewrite.so と記述。

  • mod_rewriteでアドレスを書き換えたい

    mod_rewriteでアドレスを書き換えたい思っています。 xamppでテストしていますがうまくいきません。 mod_rewrite.soの#は外しています。(つまり、.htaccess以外の設定はできていると思います) 【やりたい事】 localhost/test/index.php?p=test を  ↓ localhost/test/i/test でアクセスしたいです。 【参考にした情報】 http://www.sample.com/cgi-bin/sample/sample.cgi?a=123&b=456 というURLを静的なアドレスでアクセスできるように以下のように設定します。 RewriteEngine on RewriteRule ^/cgi-bin/sample/([0-9A-Za-z]+)/([0-9A-Za-z)]+)\.html$ /cgi-bin/sample/sample.cgi?a=$1&b=$2 [L] を言うのを見つけました。 【試したこと】 .htaccessをつくり RewriteEngine on RewriteRule ^/test/i/([0-9A-Za-z)]+)$ /test/index.php?p=$1 [L] と記入 【結果】 Object not found! 要求された URL は本サーバでは見つかりませんでした。 もし手入力で URL を入力した場合は、綴りを確認して再度お試し下さい。 と表示されました。 ------------------------------------------------------------------ localhost/test/i/testでアクセスするには、.htaccessをどう書けばいいのでしょうか? 疑問1.xamppでlocalhostでmod_rewriteができるのだろうか? 疑問2.参考にした情報のRewriteRuleの"^"がわからない。正規表現の"^"とは文頭にマッチすると思います。この場合の文頭とは? よろしくお願いします。

  • mod_rewriteで静的化(PHP)

    ご質問です。 例えば以下のような静的なページをmod_rewriteを使って.htaccessで作成しようとしています。 RewriteRuleの記述内容がよくわからず困っています。 また、.htaccessは、どのディレクトリに配置すればよいでしょうか。 どなたかご存知でしたら教えて下さい。 http://localhost/free/index.php?action=member →http://localhost/free/member http://localhost/free/index.php?action=bbs →http://localhost/free/bbs http://localhost/free/index.php?action=usr →http://localhost/free/usr このような記述をしていますが、ご指摘お願いします。 ---------------------- DirectoryIndex index.php RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([0-9A-Za-z)]+)$ index.php?action=$1 [L] ---------------------- 宜しくお願いします。

    • 締切済み
    • PHP
  • mod_rewriteでの'?'表示

    http://www.example.com/search.cgi?a=mypage&b=go&c=1&d=2 を、 http://www.example.com/mypage/go/search?c=1&d=2 に変えたいですが、どのようにすればよいのでしょうか? htaccessでは・・・ Options +FollowSymlinks RewriteEngine on RewriteRule ^/([0-9A-Za-z]+)\/([0-9A-Za-z]+)\/search?c=([0-9A-Za-z]+)&d=([0-9A-Za-z]+)$ /search.cgi?a=$1&b=$2&c=$3&d=$4 [L] にしてもアクセスできません… APACHEマニュアルでは「?」は文字数指定と言う文法に なるらしく、「?」を表示させたいです。 http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html#RewriteRule どうすればよろしいでしょうか?ご教示ください。

  • mod_rewriteに適用したくないファイルがある場合は?

    RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([0-9A-Za-z_)]+)\.htm$ http://www.****.com/$1.php [L] ↑のようにhtaccessでphpをhtmに見せているんですが、 1.フォルダ内のphpファイルでも一部にこれを適用したくない場合はどのように書けばいいのでしょうか? 2.この.htaccessファイルがある下層のフォルダにはmod_rewriteを適用したくない場合はどのように書けばいいのでしょうか? (.htaccessの効果って下層フォルダにも効いてしまいますよね?) どちらかだけでもいいので、分かる方いらっしゃれば手助けしていただければうれしいです。 よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • mod_rewriteについて教えてください。

    mod_rewriteについてお願いします。 「a」と「b」というフォルダにそれぞれ「index.html」「test.html」が入っています。「a」と「b」で「index.html」「test.html」の内容はちがいます。 わたしが一番望んでいるのは http://example.com/a/以下にアクセスがあった場合 http://example.com/b/以下にリダイレクトさせるというものです。 例) http://example.com/a/test.htmlにアクセスがあったらhttp://example.com/b/test.htmlにリダイレクト。 ------------------------------------------------------------ Options +FollowSymLinks AddHandler cgi-script htaccess <IfModule mod_rewrite.c> RewriteEngine on RewriteRule ^/a/$ /b/$1 [R=302,L] </IfModule> ------------------------------------------------------------ としてみましたが、リダイレクトされません。 ちなみに RewriteRule ^$ /b/$1 [R=302,L] と書くと、http://example.com/にアクセスがあった場合 http://example.com/b/にリダイレクトされましたので mod_rewriteには対応しております。 ご教授のほど、よろしくお願いいたします。

  • mod_rewriteについて

    .htaccessにて、mod_rewriteを使用して、URLの書き換え を行いたいのでがうまく動作してくれません。 上記の記述で http://www.aaaaaaa.jp/php/user/bbb/index.php を http://www.aaaaaaa.jp/bbb/ に変更したいのですが どのように記述したら、動作するのでしょうか。 ご教授をお願いします。 RewriteEngine on RewriteRule ^bbb$ /php/user/bbb/index.php [L] 上記だと、http://www.aaaaaaa.jp/php/user/bbb/index.php のままです。

    • ベストアンサー
    • PHP
  • htaccessでmod_rewrite

    htaccessに下記のように記述しました。 RewriteEngine on RewriteRule ^([0-9A-Za-z_]+)/$ index.php?p=$1 [L] RewriteRule ^([0-9A-Za-z_]+)/([0-9A-Za-z_]+)/$ index.php?p=$1&m=$2 [L] RewriteRule ^([0-9A-Za-z_]+)/([0-9A-Za-z_]+)/([0-9A-Za-z_]+)/$ index.php?p=$1&m=$2&y=$3 [L] RewriteRule ^sample/test/([0-9A-Za-z_]+)/$ sample/test.php?id=$1 [L] すると 「http://www.○○○.jp/index.php?p=●」 は 「http://www.○○○.jp/●/」 「http://www.○○○.jp/index.php?p=●&m=△」 は 「http://www.○○○.jp/●/△/」 「http://www.○○○.jp/index.php?p=●&m=△&y=■」 は 「http://www.○○○.jp/●/△/■」 でアクセスできました。 が、 「http://www.○○○.jp/sample/test.php?id=★」 は 「http://www.○○○.jp/sample/test/★/」 でアクセスできません。 おそらく、 「http://www.○○○.jp/sample/test/★/」を 「http://www.○○○.jp/index.php?p=sample&m=test&y=★」 として認識しているためだと思いますが、 対策がわかりません。 このような場合は、どう対処すればよいのでしょうか。

    • ベストアンサー
    • PHP
  • mod_rewriteについての質問です

    mod_rewriteについての質問です 画像の動的ページを静的ページに見せたいのですが、 http://aaa.com/gazou/image.cgi?http://aaa.com/ccc/半角英数文字/半角英数文字.jpg をmod_rewriteで静的ページに.htaccsesにて設定するにはどのように書けばよいでしょうか? こんな感じかなと思ってんですがうまくいきません。 RewriteEngine on RewriteRule ^/gazou/([0-9A-Za-z]+)/([0-9A-Za-z]+)\.html$ gazou/image.cgi?http://aaa.com/ccc/$1/$2.jpg [L] わかりにくくてすみません。 以上よろしくお願いします。

  • mod_rewriteによるURLの書き換え

    mod_rewriteを使ってURLの書き換えを行いたいのですが、どうしてもうまくいきません…。 http://***.main.jp/rewrite/name/index.shtml?total=num にアクセスされた場合に http://***.main.jp/rewrite/php.php?title=name?total=num に切り替えて処理させたいと思っています。 .htaccessには RewriteEngine on RewriteRule ^(.*)/index\.shtml\?total=([0-9]*)$ rewrite/php.php?title=$1&total=$2 このように記述したのですが、書き換えが行われずにindex.shtmlの内容が表示されてしまいます。 どうか、ご教授いただけませんでしょうか? サーバーはロリポップを使用しています。

専門家に質問してみよう