Как переписать URL с названием страны и всеми ссылками с / после названия страны - PullRequest
0 голосов
/ 10 июня 2019

Я хочу разработать приложение на php и javascript, где я хочу упомянуть название города вместе с URL-адресом веб-сайта, т.е. www.website.com/cityname, и оно должно открыть сайт www.website.com.Также для других страниц это должно быть похоже на www.website.com/cityname/pagename.php.

. Пожалуйста, предоставьте решение, как этого добиться и как поддерживать веб-URL www.website.com/cityname в течение жизненного цикла приложения?

Iможет быть в состоянии найти название города с URL веб-сайта, но он не находит страницу и показывает ошибку.

1 Ответ

0 голосов
/ 10 июня 2019

Название города должно быть частью URL для этого.

Просмотрите настройки перезаписи URL для используемого вами веб-сервера. Например, в Apache HTTPd вы можете определить правила перезаписи.

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/?([^/]+)$ /index.php?city=$1 [QSA,L]

Два условия позволяют избежать применения действующего правила к существующим файлам или каталогам. Само правило захватывает URL-адреса только с одной частью пути (без /) и перенаправляет их на index.php, добавляя город в качестве параметра строки запроса.

Не скрипт PHP может проверить параметр. Вы можете сохранить его в файле cookie или вывести в HTML, чтобы получить к нему доступ через JavaScript.

Сохранить его в URL сложнее. URL должен выглядеть как http://example.com/cityname/. Конечная косая черта заставляет браузер распознавать это как уровень пути, поэтому ссылка типа target.php будет интерпретироваться как http://example.com/cityname/target.php - сохранение названия города в URL-адресе. Но вы должны быть очень осторожны с относительными и абсолютными ссылками в выводе HTML. Правило перезаписи должно быть изменено и для конечной косой черты.

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/?([^/]+)/ /index.php?city=$1 [QSA,L] 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...