###前提
.htaccessの正規表現を使ったRewriteRuleについて質問です。
###発生している問題・エラーメッセージ
htaccessでRewriteRuleを使用しています。
正規表現を使用していないルールは正常に動作していますが、
正規表現を使用しているルールが正常に動作していません。
###該当のソースコード
【.htaccessの表記】
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^certification/([_0-9A-Za-z]+)/ /certification_detail.php?certify_name_eng=$1
RewriteRule ^certification/ /certification.php
【症状】
http://〇〇〇.com/certification/ にアクセスすると希望通り、certification.phpが呼ばれて表示されます。
しかし、
http://〇〇〇.com/certification/abc/ にアクセスしてもcertification.phpが表示されているようです。(アドレスはhttp://〇〇〇.com/certification/abc/ のまま)
希望は /certification_detail.php?certify_name_eng=abc の表示になってほしいのですが・・。
###試したこと
手打ちで http://〇〇〇.com/certification_detail.php?certify_name_eng=abc と打つとちゃんと表示されます。
certification.phpとcertification_detail.phpは同じ階層に格納しています。
正規表現を使用していないルールは動いているので、原因は正規表現が関係していると考えていますが、.htaccess関連の他の問題の可能性もあると思っています。
どなたか原因が分かれば教えていただけると幸いです。
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/30 03:54