我刚刚用PHP编写了一个论坛。在我的数据库中,在我的posts表和我的类别表下,我有一个名为'slug'的字段用于url。
对于我的HTML类别,我的网址类似于/ html,对于HTML类别,我的网站名称是/ html / test。
但我也希望像/ signin这样的网址重定向到signin.php。
是否存在我可以使用的重写条件,如果我去,例如/某些东西,如果存在something.php,它将会出现。如果是的话,它会显示something.php的内容,否则会显示category.php?cat_id = something?
答案 0 :(得分:2)
您可以使用简单的php file_exists()
函数
if(file_exists("require.php")){
require_once("require.php");
}
答案 1 :(得分: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]
答案 2 :(得分:1)
是否存在我可以使用的重写条件,如果我去,例如/某些东西,如果存在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]
答案 3 :(得分:0)
您可以将php中的file_exists - 函数与header - 函数结合使用。 这应该会导致类似:
if(file_exists("file.php")){
header('Location: http://www.example.com/');
}
答案 4 :(得分:0)
您可以使用$ _SERVER ['REQUEST_URI']来获取您的价值然后使用
if (file_exist("[yourvalue].php") {
header("Location: [yourvalue].php");
}
else {
header("Location: categories.php");
}