Понимание htaccess и $ _GET - PullRequest
0 голосов
/ 08 апреля 2019

Так устроен мой сайт ...

Articles.php содержит HTML-макет для отображения всех статей для категории.article.js содержит элементы управления для получения результатов запроса к базе данных и перехода на страницу article.php.Внутри js-скрипта находится dataTable, который отображается на странице article.php.ajax_articles.php содержит запрос запроса и возвращает результаты запроса в файл json.В файле json есть ссылки на отдельные статьи.Ссылка структурирована как чистый URL-адрес SEO (например, article / 001 / moby_dick).

Вот как я понимаю htaccess для работы.

Когда пользователь выбирает статью URL-адрес (т.е., https://www.example.com/article/001/moby-dick) передается через htaccess и с RewriteRule ^ article / ([0-9] +) / ([a-z _-] +) article.php? Art_id = $ 1 & art_name = $ 2 [NC, L] отобразит «симпатичный» URL SEO, НО известный системе будет URL, содержащий два параметра, которые могут быть использованы $ _GET для получения двух параметров. МОЕ ПОНИМАНИЕ ПРОЦЕССА ПРАВИЛЬНО?

Я заметил, что с htaccess мне теперь нужно использовать полный путь для загрузки файлов поддержки (.js) и графических файлов. Кроме того, я не могу получить переменные через js $ _GET.art_id и $ _GET.art_name.

Любая помощь очень ценится.

1 Ответ

0 голосов
/ 09 апреля 2019

В этой конфигурации невозможно получить доступ к переменным GET с помощью javascript, поскольку они не существуют после перезаписи URL. Параметры запроса были удалены.

Есть еще способы извлечения этих значений из URL с помощью window.location.href и метода .split() в javascript.

// var myurl = window.location.href; // this will get the string of your current URL. Used manual string in this example
var myurl = "https://www.example.com/article/001/moby-dick"; // manual URL for sake of an executable example

var spliturl = myurl.split("/"); // ["https:","","example.com","article","001","moby-dick"]

var articleid = spliturl[4]; // "001"
var articlename = spliturl[5]; // "moby-dick"

// see the variables in action
console.log("id: ", articleid);
console.log("name: ", articlename);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...