#php #.htaccess #url-rewriting
Вопрос:
Я переписал этот URL-адрес :
http://localhost/mysite/admin/edit-post.php?edit-post=post1
На этот URL-адрес :
http://localhost/mysite/admin/edit-post/post1
Использование этого условия перезаписи :
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^admin/edit-post/(. )/?$ admin/edit-post.php?edit-post=$1 [L]
И мой PHP-код таков :
<a href="edit-post/<?php echo $post_detail['slug'] ?>" >Edit</a>
URL-адрес переписан, и все в порядке, и теперь проблема начинается.
Я пытаюсь получить сведения о публикации и отобразить их на своей странице редактирования, когда я нажимаю «Редактировать», я получаю значение нажатой публикации с помощью метода get, Поэтому вот код, который я использую.
if (isset($_GET['edit-post'])) {
$post = $_GET['edit-post'];
$query = "SELECT * FROM posts WHERE slug = '$post' ";
[My fetch code]....
}
Теперь я получаю от этого значения get следующее : post1.php/post1
Но что мне нужно, так это : сообщение 1
Getting Wrong
$query = "SELECT * FROM posts WHERE slug = 'post1.php/post1' ";
Expected
$query = "SELECT * FROM posts WHERE slug = 'post1' ";
Надеюсь, я хорошо объяснил свою проблему. Пожалуйста, помогите, как я могу решить эту проблему.
Комментарии:
1. Кто-нибудь, пожалуйста, помогите, я больше часа ломал голову над этой проблемой.
2. Ваше правило выглядит так, как будто оно должно работать, но, возможно, ваши другие правила противоречат этому. Пожалуйста, разместите свой полный файл htaccess в вопросе.
3. @ChrisHaas Это другой вопрос.
4. Попробуйте отключить
MultiViews
, это чаще всего является виновником, когда у вас есть такое частичное перекрытие между поддельным путем и физически существующими файлами.