В последнее время я изменил способ работы своего веб-сайта - физическая страница для каждой статьи по сравнению с динамически загружаемым контентом без физической (под) страницы, но я понял, что не могу просто загрузить файлы нового сайта, потому что я бы разбил все ссылки для обмена социальной платформой, счетчики и прочее, так как подстраниц буквально тысячи.
Я слышал (я знаю об этом), что с помощью .htaccess и RewriteEngine (мне нужно использовать RewriteEngine, поскольку весь код в htaccess создан для него) я могу заставить страницы загружаться изнутри чем-то совершенно другим в зависимости от фактического URL-адреса, например, если у меня есть действительная URL-ссылка на одну из моих подстраниц:
... поэтому без изменения текста URL-адреса он будет загружать файлы моего нового сайта внутри по другому принципу, например:
Теперь мне также нужно, чтобы эти переменные «j» и «somearticle» были динамическими, или, точнее говоря, они должны быть скопированы точно так же, как они из физического URL-адреса в адресной строке (где «somearticle» на самом деле является именем изначально физического php, а "j" - это просто языковая переменная), так как каждый раз это будет что-то другое, поэтому мне не нужно делать тысячи строк в htaccess для каждой отдельной подстраницы - Мне нужен универсальный код, который бы управлял всеми подстраницами (поскольку принцип одинаков для всех, просто меняются имена php и иногда language = variable "j"), понимаете?
Так может ли кто-нибудь помочь мне рассказать мне точный синтаксис / код для этого?
РЕДАКТИРОВАТЬ
Так что я сам немного поигрался с этим, и, похоже, это сработает, если я установлю подстраницу вручную (ПРИМЕЧАНИЕ: просто пояснение - это для моего локального хоста: 8081, поэтому у меня есть это первое условие, потому что для сервера у меня другая версия, которая имеет другой путь к index.php) + Я немного обновил переменную j part thanx в сообщении @Ben:
# LOAD PAGE DIFFERENT INTERNALLY - LOCALHOST
RewriteCond %{HTTP_HOST} ^localhost:8081 [NC]
RewriteCond %{REQUEST_URI} /php/(.*)\.php$ [NC]
RewriteRule ^php/(.*).php$ /WWW/_PHP_/lego/index.php?s=$1 [QSA,L]
Но, к сожалению, по какой-то причине это влияет на каждую страницу моего сайта, а не только на страницы в / php /, поэтому, когда я нажимаю, чтобы перейти на свою первую страницу (default / initial = index.php), она ломается (она содержит сводку всех статей - они не загружены) - кто-нибудь знает, почему, пожалуйста?
Решено
Итак, после небольшого изменения кода @Ben это правильное решение, поэтому я считаю его решение правильным (поскольку оно действительно будет работать нормально сразу, как если бы страница была на сервере, потому что моя тестовая версия находится на моем локальном хосте, где путь к каталогу / php / другой))
LOAD PAGE DIFFERENT INTERNALLY - localhost
RewriteCond %{HTTP_HOST} ^localhost:8081 [NC]
RewriteCond %{REQUEST_URI} /php/([a-zA-Z0-9\-]+).php [NC]
RewriteRule ^ index.php?s=%1 [QSA,L]






REQUEST_URI - это компонент пути запрошенного URI, например /php/somearticle.php, но не содержит строку запроса, например ?j=en.
Шаблон RewriteCond, символ ! (восклицательный знак) используется для отрицания результата условия. Для префикса с каким-либо шаблоном используйте символ ^ (каретка), соответствующий началу строки.
%1 - это обратная ссылка RewriteCond, которая обеспечивает доступ к сгруппированным частям (в скобках) шаблона.
QSA, если заменяющий URI содержит строку запроса, строка запроса, такая как ?j=en, будет добавлена к новому перезаписываемому uri.
RewriteCond %{REQUEST_URI} ^/php/([a-zA-Z0-9\-]+).php [NC]
RewriteRule ^ index.php?s=%1 [QSA,L]
См. Также: Модуль Apache mod_rewrite, Флаги RewriteRule
Хорошо, Бен, я перепроверил ваше решение и с одним небольшим изменением - удалил знак ^, так как мое размещение www на локальном хосте отличается и с точки зрения локального сервера путь / php / не находится в корне - на самом деле он работает отлично, поэтому Я считаю ваше решение правильным, большое спасибо!
Спасибо за ваш ответ, но ваше решение не работает (+ оно не учитывает переменную учетной записи, которая поставляется с исходным URL-адресом = переменная j), тогда как мое обновленное решение в исходном сообщении (РЕДАКТИРОВАТЬ - вы заметили?) Работает точно так, как ожидалось, НО К сожалению, он просто ломает мой INDEX.PHP, поэтому мне нужно найти причину, по которой ... вы можете мне помочь с этим, пожалуйста? По какой-то причине кажется, что это также относится к index.php, чего, конечно же, не должно быть (это должно применяться только к URL-адресу, который заканчивается на "/php/somearticle.php") ... :-(