Category Archives: .htaccess

XMLを表示できない。

0
Filed under .htaccess, php, Zend Framework
Tagged as , , ,

ZendFrameworkの勉強と称して、PHPからXMLを表示しようとしてたわけですが、
XML表示ができずに、以下のようなエラーが出てました。

XML パースエラー: タグの対応が間違っています。終了タグが必要です:

URL: http://zend.hattara.info/Response/
行番号: 11, 列番号: 3:

–^

色々周りの方に確認してもらったりしたら、間違いがボロボロと。。。

  • ZendFrameworkでは、Controller部分には、phpの閉じかっこ「 ?> 」は記載しないらしい
  • XMLを表示する際には、タグの中はシングルクォートではなく、ダブルクォートを利用するらしい
  • 」は「」と競合するので、short_open_tagはOffにする必要があるらしい
  • charsetをUTF-8にしてるのに、ソースをEUCで記載してたので出たらしい

というあたりがありました。
なので、.htaccessで以下を追加したり各内容を修正したりしました。

php_value short_open_tag “Off”

この辺を全部対応して、どうにか動くようになりました。

ZendFrameworkで404エラー

0
Filed under .htaccess, Apache, php, Zend Framework
Tagged as ,

.htaccessでmod_rewriteを使って転送してるつもりが、
404エラーになってしまう。

Apacheのエラーログ(error_log)では、「File does not exist:」が
でてる状態なわけです。

こんな現象とちょっと戯れたので、メモしとく。

.htaccessの内容は以下。

## リライトエンジンを有効に。

RewriteEngine On

## リライトの対象パスを指定

RewriteBase /

## リライトルールを宣言(条件・アクセス先)

RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php

まあ、これで普通はmod_rewriteによって、該当領域にきたアクセスで
RewriteRuleで指定されている画像など以外のものは、
すべてindex.phpにアクセスされるようになるはずなんですね。

ここで大きな落とし穴がありました。
.htaccessの書き方が問題なくても、
そもそも.htaccessを有効にしてない場合があるわけです。

Apacheのhttpd.confに「AllowOverride」って項目があるわけです。
これが「None」とかになってると、.htaccessが利用できないです。

これは、サーバ管理者にお願いする形になっちゃうんでしょうけど、
修正するしかないですね。

ZendFrameworkのおすすめ書籍


.htaccessで基本だけど忘れる事

3
Filed under .htaccess, Apache
Tagged as , , ,

よく.htaccessを使うわけだけども、その都度書き方をググるわけです。
面倒なんで、メモで残しておきます。

まず、特定ホストからのみアクセスを許可するなら、

order deny,allow
deny from all
allow from 192.168.0.100
allow from 192.168.0.200

みたいな感じにすれば、OKですね。

次に、mod_rewriteで転送する場合ですが、アクセスホスト名毎に
内容を分岐する(VirtualHostとか使ってない場合?)とか、
コンテンツ内容によって変更する場合には、以下のような書き方でいけますね。

## シンボリックリンクを有効に(場合によって不要かも)

Options FollowSymLinks

## リライトのエンジンを有効に。

RewriteEngine on

## サイト名A宛でtest.phpでもtest/フォルダでもなければmainフォルダに転送

RewriteCond %{HTTP_HOST} a.com
RewriteCond %{REQUEST_URI} !(^/test\.php)
RewriteCond %{REQUEST_URI} !(^/test/)
RewriteRule ^(.*)$ /main/ [R]

## サイトB宛で/aaa/abc.php宛のものを defフォルダに転送

RewriteCond %{HTTP_HOST} b.com
RewriteCond %{REQUEST_URI} (^/aaa/abc.php)
RewriteRule ^(.*)$ /def/ [R]

というような感じでできますね。
あとは、これをもとの修正をいれてあげればいい感じ。

条件とか不要な場合には、Redirectを使えばいいですね。