Я хотел бы вернуться к своему собственному вопросу и ответить на него.Некоторое время сейчас я использую именно то, что хочу.
Прежде всего, у меня есть это в моем htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
# existing folders or files
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.* - [L]
# non-existing folders or files
RewriteRule ^(.*)/? index.php?p=$1 [L]
</IfModule>
Это позволяет получить доступ к реальным файлам в любое время.Если путь не существует, он передаст весь путь к index.php.
В index.php у меня есть следующий код вверху:
// Split the URL in all its components
$request = parse_url(strip_tags($_GET['p']));
// Only take the path without any leading slashes
$path = rtrim($request['path'], '/');
// Split each variable from eachother
$path_array = explode("/", $path);
if(count($path_array)){
// By default I select the first variable as the page I will include later on
$page = $path_array[0];
// Each other variable I will pass as $val[#nr] starting with 1. Just to be sure I'm going to strip tags and slashes
for($i=1;$i<count($path_array);$i++){
$path_array[$i] = strip_tags($path_array[$i]);
$path_array[$i] = stripslashes($path_array[$i]);
$val[$i] = $path_array[$i];
}
}
else{
// If $path_array doesn't contain multiple variables lets assume $path will contain the $page
$page = $path;
}
// If $page is empty let's take on the default page to include later on
if(empty($page)){
$page = "home";
}
if(file_exists($page . ".php")){
include($page . ".php");
}
else{
echo "Page " . $page . ".php does not exist.";
}
Чтобы дать вам несколько примеровиз возможностей:
domain.com / будет включать home.php domain.com/product/ будет включать product.php domain.com/product/298833/ будет включать product.php и анализировать 298833 как $ val [1];domain.com/product/298833/purple-candle будет включать product.php и анализировать 298833 как $ val [1];и пурпурная свеча как $ val [2];Обратите внимание, что ведущий слеш не включен.Это не имеет значения.
Я открыт для улучшений или советов в целом.На данный момент это определенно тот ответ, который я искал в ответ, когда задавал этот вопрос.