- 締切済み
httpd.confのmod_rewite設定
下記のようにMAMPのhttpd.confの一番下にmod_rewite設定のため行を追加したのですが 動作しません。 ※ちなみにURLをmod_rewite設定で http://localhost/○○○/index.php?category=△△△△△ を http://localhost/○○○/△△△△△ にする予定です。 よろしくお願いいたします。 RewriteEngine On RewriteCond %{REQUEST_URI} ^/○○○○/?(.*)$ RewriteCond %{QUERY_STRING} (^|&)category=([^&]+)($|&) RewriteRule ^([0-9a-zA-Z_-]+)/([0-9a-zA-Z_-]+)/([0-9a-zA-Z_-]+)$ index.php?category=$1 [QSA,PT] RewriteLog tmp/rewrite.log RewriteLogLevel 3
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- notnot
- ベストアンサー率47% (4900/10358)
>urlをhttp://localhost/○○○/△△△△△ にして叩いたのですが ?? http://localhost/○○○/index.php?category=△△△△△ を叩くのでは? http://localhost/○○○/index.php?category=△△△△△ を http://localhost/○○○/△△△△△ に変換するんですよね? それとも書き間違い? あと、 <IfModule mod_rewrite.c> を書くのはやめましょう。万一、mod_rewriteモジュールが読み込まれていなくてもエラーが出ません。
- notnot
- ベストアンサー率47% (4900/10358)
>http://localhost/○○○/index.php?category=△△△△△ >を >http://localhost/○○○/△△△△△ と言うことであれば、 RewriteEngine On RewriteCond %{QUERY_STRING} (^|&)category=([^&]+)($|&) RewriteRule ^ooo/index.php$ /ooo/%2? ですね。category以外にもqueryパラメーターがあってそれを引き継ぎたいと言うことなら、最後の?を消してください。
補足
notnot様 ご教示ありがとうございます。 httpd.confで <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{QUERY_STRING} (^|&)category=([^&]+)($|&) RewriteRule ^ooo/index.php$ /ooo/%2? </IfModule> 上記のように書き換え urlをhttp://localhost/○○○/△△△△△ にして叩いたのですが ーーーーーーーーーーーーーーーーーーー Not Found The requested URL /○○○/△△△△△ was not found on this server. ーーーーーーーーーーーーーーーーーーー とエラーが返ってきます。 他の設定も必要なのでしょうか? ご教示のほどよろしくお願い申し上げます。
補足
notnot様 ご教示ありがとうございます。 <IfModule mod_rewrite.c> を外し何も囲んでいない状態で ーーーーーーーーー RewriteEngine On RewriteCond %{QUERY_STRING} (^|&)category=([^&]+)($|&) RewriteRule ^○○○/index.php$ /○○○/%2? ーーーーーーーーー をhttp.conf最下部に設置し直しました。 その後、リンクにパラメータの付いた <a href="./index.php?category=△△△△△"> を設置し叩きましたが反応しませんでした。 ※ちなみに下記のやり方で試したところ リンクを押した瞬間URLが短縮される動きがありましたがカスタマイズがわからず。。。 http://neo-shocker.com/code/2011/07/htaccess-rewrite-dynamic-url-static-url.html