Перезапись URL с использованием PHP и MySQL и htaccess - PullRequest
2 голосов
/ 21 марта 2012

У меня есть мой сайт, так как localhost/tutorials/rewrite/news.php на этой странице являются заголовками новостных статей, которые есть в моей базе данных.Каждый заголовок представляет собой ссылку для прочтения статьи.Ссылка:

'<a href="read-news.php?url=' . $url . '">' . $title1. '</a>'

Страница read-news.php получает URL-адрес и использует его в выражении sql для получения статьи из базы данных

$url = $_GET['url'];
$sql = "SELECT * FROM news WHERE url = '$url'";

Моя ссылка в новостях.php страница и URL-адрес read-news.php выглядят так:

localhost/tutorials/rewrite/read-news.php?url=the-news-today

Как мне сделать так, чтобы она выглядела

localhost/tutorials/rewrite/read-news/the-news-today.php

Я использовал следующий код htaccessглядя на другие примеры, я подумал, что этого достаточно, чтобы исправить это

RewriteRule ^read-news/(.*).php /read-news.php?url=$1 [PT]

Любая помощь, пожалуйста

Ответы [ 2 ]

0 голосов
/ 23 марта 2012

edit: вашему RewriteRule тоже нужно немного поработать. попробуйте это:

RewriteRule ^read-news/(.*)\.php$ /read-news.php?url=$1 [PT]

(вам нужно использовать «$» для обозначения конца перезаписи и выхода из. Перед «php» с обратной косой чертой)

Кроме того, вы должны ссылаться на свои страницы так, как вы хотите, чтобы они отображались:

href="localhost/tutorials/rewrite/read-news/the-news-today.php"

.htaccess не будет магически изменять URL-адреса для вас.

Также, если вы хотите иметь доступ к переменным строки запроса, я бы добавил QSA к вашим флагам: [PT,QSA]

таким образом, вы все равно можете получить доступ к переменной url с помощью $_GET['url'].

0 голосов
/ 21 марта 2012

Сделай так, как это делает Wordpress. Перепишите все в index.php и проанализируйте URL из скрипта.

...