5

タイトルにあるように、サーバーで .htaccess ファイルを使用できるかどうかを確認する PHP 関数を探しています。

何をテストする必要がありますか?

オプション1: 多分mod_rewriteモジュールがインストールされている場合は?

オプション 2: 「 httpd.conf 」に「 AllowOverride None」が表示されているかどうかを確認します。

あなたの提案をありがとう、コードも役立ちます;)

4

2 に答える 2

13

.htaccess に次のように記述します。

SetEnv HTACCESS on

次に、PHP スクリプトで $_SERVER を探します。

if ( !isset($_SERVER['HTACCESS']) ) {
  // No .htaccess support
}
于 2012-05-10T09:44:36.427 に答える
5

php スクリプトを使用して .htaccess ファイルを作成し、ファイルにリダイレクトを書き込み、そのファイルを呼び出して、リダイレクトされているかどうかを確認します。.htaccess が機能するかどうかを確認する最も基本的な方法の 1 つです。

編集:テストされていません

<?php
$html1 = "test.html";
$html2 = "test2.html";
$htaccess = ".htaccess";
$string1 = "<html><head><title>Hello</title></head><body>Hello World</body></html>";
$string2 = "<html><head><title>Hello</title></head><body>You have been redirected</body></html>";
$string3 = "redirect 301 /test.html /test2.html";
$handle1 = fopen($html1, "w");
$handle2 = fopen($html2, "w");
$handle3 = fopen($htaccess, "w");

fwrite($handle1, $string1);
fwrite($handle2, $string2);
fwrite($handle3, $string3);

$http = curl_init($_SERVER['SERVER_NAME'] . "/test.html");
$result = curl_exec($http);
$code = curl_getinfo($http, CURLINFO_HTTP_CODE);

if($code == 301) {
    echo ".htaccess works";
} else {
    echo ".htaccess doesn't work";
}
?>
于 2012-04-27T06:57:08.310 に答える