-1

PHP でフォーラムを作成したばかりです。私のデータベースでは、投稿テーブルとカテゴリ テーブルの下に、URL 用の「slug」というフィールドがあります。

私の HTML カテゴリには /html のような URL があり、HTML カテゴリの下の test という名前の投稿には /html/test があります。

しかし、signin.php にリダイレクトする /signin のような URL も必要です。

たとえば、/something に移動すると、something.php が存在するかどうかを確認する、使用できる書き換え条件はありますか。存在する場合は、something.php のコンテンツが表示されます。そうでない場合は、category.php?cat_id=something? が表示されます。

4

5 に答える 5

2

簡単なphpfile_exists()関数を使用できます

if(file_exists("require.php")){
    require_once("require.php");
}
于 2012-10-02T13:29:20.117 に答える
1

たとえば/somethingに移動すると、something.phpが存在する場合にチェックされる、使用できる書き換え条件はありますか。含まれている場合は、something.phpのコンテンツが表示され、そうでない場合は、category.php?cat_id = something?が表示されます。

試す:

RewriteEngine On

# exclude legit requests
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# check if requests is pointing to a php file
RewriteCond %{REQUEST_URI} ^(.*?)/?$
RewriteCond %{DOCUMENT_ROOT}/%1.php -f
RewriteRule ^ /%1.php [L]

# otherwise, serve the category (also need to exclude legit requests)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /category.php?cat_id=$1 [L,QSA]
于 2012-10-02T17:48:36.447 に答える
1

次のことができます。

RewriteEngine on
RewriteRule ^([a-zA-Z0-9-]*)(.*)$ /$1.php [QSA,L,E]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /default.php [L]
于 2012-10-02T13:30:34.567 に答える
0

$_SERVER['REQUEST_URI'] を使用して値を取得し、使用できます

if (file_exist("[yourvalue].php") {
   header("Location: [yourvalue].php");
}
else {
   header("Location: categories.php");
}
于 2012-10-02T13:33:38.653 に答える
0

phpのfile_exists関数をheader関数と組み合わせて使用​​できます。これにより、次のようになります。

if(file_exists("file.php")){
     header('Location: http://www.example.com/');
}
于 2012-10-02T13:31:48.697 に答える