はまった、rewrite。
いろいろ調べてわかったことをメモしておく。
RewriteCondでマッチしたパラメータは%1で取れる
Rewrite後のURLで Urlencodeされたく無い場合は、NEをつける
クエリストリングを消したいときは、Ruleの最後に?をつける。
サンプル
/test/test.html?param1=1
を
/test/newtest.html#param1=1
にRewriteしたい場合
RewriteCond %{THE_REQUEST} ^GET\ /test/test.html\?(.*)\ HTTP(.*)$
RewriteRule ^.* http://(自分のドメインにして)/test/search-result.html#%1? [NE,L]
で、できると思います!
Rewriteで参考にさせていただいているサイトは、↓です。
http://blog.dawgsdk.org/weblog/archives/411011
2013年8月30日金曜日
2013年8月6日火曜日
[apache] リダイレクトの書き方
■/news/index.php?cat=1 を /news/cat1/index.html へリダイレクトする際の書き方
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} ^/news/index.php$ [NC]
RewriteCond %{QUERY_STRING} "cat=1"
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /news/cat1/index.html? [R=301,L]
※最後に?を付けないと、/news/cat1/index.html?cat=1 となってしまうから ? をつけましょう。
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} ^/news/index.php$ [NC]
RewriteCond %{QUERY_STRING} "cat=1"
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /news/cat1/index.html? [R=301,L]
※最後に?を付けないと、/news/cat1/index.html?cat=1 となってしまうから ? をつけましょう。
2013年8月2日金曜日
[PHP] ファイルを必ず読み込ませる
auto_prepend_file
が便利。
必ず読み込むので、定数定義などはこのファイルにしておけば簡単です。
.htaccess には ↓のように書いておきます。
php_value auto_prepend_file /var/www/html/_php/auto_inc.php
php_value display_errors stdout
が便利。
必ず読み込むので、定数定義などはこのファイルにしておけば簡単です。
.htaccess には ↓のように書いておきます。
php_value auto_prepend_file /var/www/html/_php/auto_inc.php
php_value display_errors stdout
2013年7月24日水曜日
[apache] SSIのエラーメッセージを非表示にしたい!
SSIファイルが無い時に、
[an error occurred while processing this directive]
というメッセージが表示されますよね。
これを、表示したくない時があります。そういう場合には、
<!--#config errmsg="<!-- none -->" -->
<!--#include virtual="/test.txt" -->
というように記述しておけば、[an error~ というメッセージが表示されなくなります。
これは便利!
[an error occurred while processing this directive]
というメッセージが表示されますよね。
これを、表示したくない時があります。そういう場合には、
<!--#config errmsg="<!-- none -->" -->
<!--#include virtual="/test.txt" -->
というように記述しておけば、[an error~ というメッセージが表示されなくなります。
これは便利!
2013年6月12日水曜日
[MT] カテゴリ別アーカイブで、特定カテゴリを出力したく無い場合
MTのアーカイブテンプレートで、ある特定カテゴリのアーカイブファイルを出力したく無い時があります。そんな時には以下の方法でやるとよいです。
1. カテゴリにカスタムフィールドをつけます。チェックボックスでいいでしょう。
2. 出力したいカテゴリだけ、チェックをつけます。
3. アーカイブマッピングで、種類:カテゴリとし、パスを
<mt:if tag="cat_output">%c/index.html</mt:if>
と記述します。cat_output はカスタムフィールド名です。
これで、出力の制御ができます。
このようにしないと不必要なファイルまで生成してしまうので、それが気になる時にはこのようにしましょう。
1. カテゴリにカスタムフィールドをつけます。チェックボックスでいいでしょう。
2. 出力したいカテゴリだけ、チェックをつけます。
3. アーカイブマッピングで、種類:カテゴリとし、パスを
<mt:if tag="cat_output">%c/index.html</mt:if>
と記述します。cat_output はカスタムフィールド名です。
これで、出力の制御ができます。
このようにしないと不必要なファイルまで生成してしまうので、それが気になる時にはこのようにしましょう。
2013年3月19日火曜日
[apache] client denied by server configuration: が出るとき
Apacheでclient denied by server configuration:がログに表示される時は、
<directory> </directory> に
Order allow,deny
Allow from all
を忘れているときです。
<directory> </directory> に
Order allow,deny
Allow from all
を忘れているときです。
2013年3月14日木曜日
登録:
投稿 (Atom)