クエリ文字列を変換しようとしています。
http://atwd/books/course?course_id=CC100&format=XML&submit=Submit
セグメント URI に。
http://atwd/books/course/CC100/XML
私はCodeIgniterで働いています。
CodeIgniter の URL セグメント ガイドを確認するようにというスタック オーバーフローの回答を見ていましたが、クエリ文字列をセグメント URI に変換する方法に関する情報はないと思います。ただし、セグメント URI をクエリ文字列に変換する方法があり、Google からも大量の結果が得られます。
別のスタックオーバーフローの回答に続いて、.htaccessファイルでこれを試しましたが、何も機能していないようでした
RewriteCond %{QUERY_STRING} ^course_id\=([^&]+)\&format\=([^&]+)$
RewriteRule ^$ /course/%1/format/%2 [R,L]
私の .htaccess ファイル全体にこれがあります。
<IfModule mod_rewrite.c>
RewriteEngine on
#Source: http://codeigniter.com/user_guide/general/urls.html
#Removal of index.php
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php?route/$1 [L]
#Source: https://stackoverflow.com/questions/3420204/htaccess-get-url-to-uri-segments
#Format Course function requests
RewriteBase /
RewriteCond %{QUERY_STRING} ^course_id\=([^&]+)\&format\=([^&]+)$
RewriteRule ^$ /course/%1/format/%2 [R,L]
</IfModule>
これは、Codeigniterスクリーンショットのルート ディレクトリにあります。
.htaccess ファイルのコードが機能しません。ページを更新しても何も起こりません。ただし、index.php を非表示にするコードは機能しています。誰かが理由を知っていますか?