- ベストアンサー
RewriteRuleの書き方
畏れ入ります。RewriteRuleの書き方で悩んでいます。 単純に http://url/abc としてurl配下のindex.phpにabcを渡したいのですが・・・ 例えば http://url/abc_def とアクセスした場合には RewriteRule (.*)_(.*) index.php?$1_$2 で$1にabc$2にdefが取れてきました。 しかし、_で分ける必要が無い為、 RewriteRule (.*) index.php?$1 で http://url/abc でアクセスとしてみたところ・・・ なぜか$1には「index.php」が取れてきました・・・ http://url/abc のアクセスで $1にabcが取れるようなRewriteRuleを書くにはどう書いたら良いのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (1)
- tany180sx
- ベストアンサー率63% (239/379)
関連するQ&A
- RewriteRuleの書き方
いつもお世話になっております。 プログラムはある程度かけるのですが、サーバー周りが全く無知です。 .htaccess についてご教授願います。 RewriteRuleで二重で実行するにはどうしたら宜しいでしょうか。 [既存のRewriteRule] RewriteRule ^(.*)__(.*)/.*\.html$ /php/index..php 上記実行後、templateでindex.htmlとなります。 それを再度Rewriteしたいと思っています。 追加で下記を記述しましたが、うまくいきません。 RewriteRule ^(.*)__(.*)/index.html$ /$1/$2/index\.html [L] お手数ですが、宜しくお願い致します。
- 締切済み
- PHP
- RewriteRuleについて
RewriteRuleについて教えてください。 いままでhtmlだったのをphpに直しました。 通常であれば、 RewriteRule ^(.*)\.html$ /$1\.php [L,R=permanent] と書けば、自動的に***.html → ***.phpに変更になります。 これで問題はないのですが、 ディレクトによっては、すべてphp化していません。 特定のディレクトリ(hoge)にアクセスした場合のみ拡張子をphpに変更したい場合の書き方をお教えください。 以下では動きませんでした。 RewriteRule ^/hoge/(.*)\.html$ /$1\.php [L,R=permanent]
- ベストアンサー
- CGI
- .htaccessのRewriteRuleについて
RewriteRuleを用いて ・条件1.PHPで開発したホームページを表示しつつ,index以外の直リンクを禁止 ・条件2.ルートディレクトリ/phpMyAdmin/と指定した時はphpMyAdminに接続 と言うルールを書きたいのですが, RewriteRule ([^\/].*)\.php$ /index.php?mjs=$1 [L] RewriteRule ([^\/].*)\.php\?.*$ /index.php?mjs=$1 [L] RewriteRule ^$ /index.php?mjs=login [L] で条件1が満たせました. ここで,条件2を満たすために RewriteRule ^/phpMyAdmin/(.*)$ /phpMyAdmin/(.*)$ [L] と追加したら/phpMyAdmin/index.phpに飛ぶはずが/phpMyAdmin/login.phpへと飛んでしまい,「このアドレスへのリクエストに対するサーバのリダイレクト設定がループしています。」とエラーが帰ってきてしまいました. 仕事の合間にかれこれ一週間近く調べては居るのですが,どうすれば条件2が満たせるようになるのか,解決の糸口が見つかりません. 何方か,御助言頂けないでしょうか. 宜しくお願いします.
- ベストアンサー
- その他([技術者向] コンピューター)
- .htaccessでRewriteRule
.htaccessでパラメータ付のアドレスにRewriteRuleしたいのですが。 例えば test.phpにアクセスされた場合、test.php?id=5 としたいのですが。 現状、下記のように.htaccessに記述したのですがうまくいきません。 RewriteEngine On RewriteRule ^test.php$ /test.php?id=5 [R=301,L] また、test.phpにはパラメータ付(test.php?id=1)でアクセスされる場合もあります。 その場合には、test.php?id=1のままにしたいのですが。 どのように記述したらよろしいのでしょうか。
- 締切済み
- HTML
- ApacheのRewriteRuleについて
ApacheのRewriteRuleで困っています。 以下のURLを /gr/15bd60625f36edee4051b82e021d7a7f1137487409.php?categoryID=1&TitleID=38 このようなURLに置き換えて実行させようと思っています。 /grco/index.php?cat=1&id=38 mod_rewriteを導入し(動作確認済み) Apacheのhttpd.confに以下の定義を追加しいろいろと やっていますが・・うまくいきません。 URLの?がうまく処理できていないようです。 引数部分の置き換えができていません。 RewriteRule ^/gr/(.*)(.\.php)([^\?]*)(.*)$ /grco/index.php?cat=$1&id=$2 [L] 何か指定に問題があるのでしょうか? お手数ですが、ご存知の方がいらっしゃいましたら アドバイス等いただければと思います。 よろしくお願いします。
- 締切済み
- Linux系OS
- .htaccessのRewriteRuleの設定
Sabelというフレームワークでtest用プロジェクトを作成して、 testフォルダ addonフォルダ appフォルダ ・ ・ ・ publicフォルダ .htaccessファイル というフォルダ構造で、publicフォルダの中に.htaccessファイルがあり内容は [.htaccessファイル] <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_URI} \/\..+$ RewriteRule .* /notfound [R,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule !\.(js|ico|gif|jpg|png|bmp|swf|css|html)$ index.php [QSA,L] </IfModule> URLからのアクセスは、 http://localhost/test/public/index.php/index/index と入力するとちゃんとindexコントローラのページが表示できます(http://localhost/test/public/index.phpでもアクセスできます) ですが自分としては、 http://localhost/test/public/index/index とindex.phpを抜かしてアクセスさせたいのですが、 この.htaccessファイルのままでは、 「404 Not Found 該当するページが見つかりません。 ページは削除されたか、移動された可能性があります。 」 のページになってしまいます・・・ なにを記述すればindex.phpなしでアクセスできるようになるのでしょうか? Sabel ドキュメントとか(非公式) http://ebine.org/sabel/doc/index.html
- 締切済み
- PHP
- .htaccessのRewriteRuleエラー
PHPのフレームワークを使って、サイトを作成しているのですが、 .htaccessの設定でつまずいております。 RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php 上記のコードはフレームワークを使う時の お決まりのようなコードなのだと思うのですが、 これはコピペして問題無く動作しております。 ※このコードは下記ページのものをコピペしました。 http://www.yiiframework.com/doc/guide/1.1/ja/topics.url#sec-7 しかし、この既存の.htaccessファイルに下記の通り、 www無しのアクセスをwww有りのurlに転送させるための コードを追加すると、サイト内のリンクが切れてしまいます。 RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{HTTP_HOST} ^mydomain.com //これを追加した RewriteRule ^(.*)$ http://www.mydomain.com/$1 [R=301,L] //これを追加した RewriteRule . index.php 記述方法が誤っているのだと思うのですが、どのように記述すれば、 正常に動くのでしょうか?
- ベストアンサー
- PHP
- RewriteRule の使い方がわかりません(>_<)
~.com/abc/ の (1) RewriteEngine On RewriteRule ^(a).html?$ $1.cgi [L,T=application/x-httpd-cgi] としたところ /。。。/a.cgi (内部でのパス) ・Not Foundとか、 ・You don't have permission toだとか エラーがでるのですが (2) RewriteRule ^(b).html?$ /abc/a.cgi とかだと きちんと表示されます (1) をきちんと 設定したいのですが どうやって設定するのですか? もしかして 書き換えたアドレスは ドメインからの urlとして 記述しないといけないのですか?
- 締切済み
- BSD系OS
- RewriteRule について
RewriteRule ^([0-9]+)/$ shop.php?&category=$1 このように書きました。 http://aaa.ccc.jp/shop.php?&category=$1 http://aaa.ccc.jp/$1/にアクセスしうまくいったのですが、Internet Explorerの履歴からアクセスするとhttp://aaa.ccc.jp/$1にアクセスしページが表示されません。どうしてでしょうか?最後の/がつかないのですがお教えできないでしょうか?
- 締切済み
- PHP
- .htaccessのRewriteRuleの記述
.htaccessのRewriteRuleの記述方法について質問です。 以下のようなURL移転があったので、RewriteRuleを記述したいのですが、どのように記述すればよろしいでしょうか? 【旧URL】 http://example.com/hoge/hoge.php?id=数字 【新URL】 http://example.com/foo.php?var=1&id=数字 ※数字は対応しています(同じページは同じ数字が入ります)。 なお、私なりにググってみて、以下のように記述したのですが、動きませんでした。 Options +FollowSymLinks RewriteEngine on RewriteRule /hoge/hoge\.php\?(.+) http://example.com/foo.php?var=1&$1 [R=301,L] また、上記のような場合は、そもそもRewriteRuleは適切ではないということであれば、より良い手段をご教示いただきたくお願い申し上げます。
- ベストアンサー
- その他(ITシステム運用・管理)
お礼
たびたびありがとうございます。 'REQUEST_URI'を使うと取ることが出来ました・・・ ただ$1で取った方が慣れていて、楽で良いなあとおもったのですが・・・ RewriteRuleの書き方の例はたくさんあるのですが、 結構くせがあるらしく、なかなか思い通りに行きませんでした。 ほとんどのページにかかれている例のように以下のようにすると RewriteRule ^/(.*) index.php?$1 http://url/abc ではアクセスできなくなり、 なんとhttp://url//abc でabcが取れるようになりました。 なかなか難しいんですね。。。