このPHPスクリプト(test.php)はmysqlにページが存在するかどうかをチェックし、404ステータスヘッダを返しますが200 OKステータスを返します。これにより、コンソールでソフト404エラーが発生します。PHPはSSL経由で404エラーの代わりに200 OKステータスヘッダを返す
私は修正しようとしましたが、単に機能しません。ここは私の.htaccessです。私は数ヶ月前にSSLに、私のサイトを移行したと私はポートからhttpsにすべてのトラフィックをリダイレクトしています80
RewriteEngine On
ErrorDocument 404 /404.shtml
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
RewriteEngine on
RewriteRule ^([0-9]+)-([0-9]+)-([0-9]+)/pressrelease([0-9]+)\.htm$ test.php?pressid=$4 [L]
、ここでは、問題がここにどのようにある何私test.phpを
<?php
include_once('dbc.php');
$pid = strip_tags(mysql_real_escape_string($_GET['pressid']));
$rs_dirs = mysql_query("select id,name from categories order by name") or die(mysql_error());
$rs_press = mysql_query("select *
from press
where id = '$pid'
and approved='1'
") or die(mysql_error());;
$total = mysql_num_rows($rs_press);
if (mysql_num_rows($rs_press) == 0) {
header("HTTP/1.1 404 Not Found");
include '404.shtml';
die();
}
です私が直します?
[**新しいコード**でmysql_ *関数を使用しないでください(https://stackoverflow.com/q/12859942)。彼らはもはや維持されている[正式に廃止されました](https://wiki.php.net/rfc/mysql_deprecation)。 (http://uk.php.net/manual/en/function.mysql-connect.php)[** **赤いボックス]を参照してください?代わりに[* prepared statements *](http://en.wikipedia.org/wiki/Prepared_statement)について学び、[PDO](http://php.net/pdo)または[MySQLi](http:// php.net/mysqli) - [この記事](http://php.net/manual/en/mysqlinfo.api.choosing.php)は、どちらを決定するのに役立ちます。 – Machavity