Это застряло у меня, поэтому я надеюсь, что кто-то сможет указать мне правильное направление.
У меня есть база данных, в которой хранятся все мои сообщения, которая называется blog_posts_content.Затем у меня есть файл viewpost.php, который запрашивает содержимое публикации, соответствующее postSlug, с запросом get по «id», как показано ниже:
<?php require($_SERVER['DOCUMENT_ROOT'] . '/includes/config.php');
$stmt = $db->prepare('SELECT * FROM blog_posts_content WHERE postSlug = :postSlug');
$stmt->execute(array(':postSlug' => $_GET['id']));
$row = $stmt->fetch();
//if post does not exists redirect user.
if($row['postID'] == ''){
header('Location: ./');
exit;
}
?>
Вот пример postSlug в базе данных ->
https://website.co.uk/testfolder/viewpost.php?type=services&category=webdesign&id=postname
Затем я пытаюсь получить это значение как
https://website.co.uk/testfolder/services/webdesign/postname
Пока у меня есть этот файл htaccess в моей тестовой папке
RewriteEngine On
RewriteBase /testingfolder/
RewriteRule ^([^/]+)/([^/]+)/?$ catpost.php?category=$1&id=$2 [L]
RewriteRule ^a-(.*)-(.*)$ archives.php?month=$1&year=$2 [L]
RewriteCond %{REQUEST_FILENAME} !-d [NC]
RewriteCond %{REQUEST_FILENAME} !-f [NC]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ viewpost.php?type=$1&category=$2&id=$3 [QSA,L]
В тестовую папку входят следующие файлы:
index viewpost catpost
Поэтому я рассматриваю index.php как домашнюю страницу курса, viewpost - запрос содержимого публикации изатем catpost для отображения категорий.
Теперь я надеюсь, что достаточно подробно изложил предысторию, так что теперь к проблеме.
Приведенное выше не показывает страницу, поэтому, если я нахожусь в индексе и нажмите ссылку сПлагин, описанный выше, перенаправляется обратно на страницу индекса в соответствии с запросом php.
Если я просто использую этот htaccess и просто использую postSlug в качестве имени сообщения, тогда я смогу получить сообщение, показывающее
RewriteEngine On
RewriteBase /testfolder/
RewriteRule ^category/(.*)$ catpost.php?id=$1 [L]
RewriteRule ^a-(.*)-(.*)$ archives.php?month=$1&year=$2 [L]
RewriteCond %{REQUEST_FILENAME} !-d [NC]
RewriteCond %{REQUEST_FILENAME} !-f [NC]
RewriteRule ^(.*)$ viewpost.php?id=$1 [QSA,L]
Однако, шth, что мой url заканчивается как
https://website/testfolder/postname
Я задаю вопрос, является ли это запросом php или правилами htaccess.
Как мне решить эту проблему?