.htaccess конвертирует вложенный каталог в параметр URL - PullRequest
0 голосов
/ 03 июня 2019

в .htaccess Я хочу преобразовать

from: website.com/xi/abc

to: website.com/x/?s=abc

Типы пользователей в website.com/xi/abc и в каталоге abc не существует, и я просто хочу более привлекательный URL, где abc простопараметр и становится параметром для index.html в каталоге x, имя параметра - s, а значение abc

. Ниже не совсем работает.Я пытаюсь сделать / abc просто abc и быть переданным на

  RewriteEngine On
  RewriteCond %{QUERY_STRING} ^xi/(.*)$
  RewriteRule ^(.+)$ x/index.html?s=$1 [QSA,L,NE]

, вот вторая попытка, которая также не работает:

RewriteEngine On
RewriteCond "%{DOCUMENT_ROOT}/xi/(.*)" -f
RewriteRule "%{DOCUMENT_ROOT}/x/index.html?s=$1" [QSA,L,NE]

1 Ответ

1 голос
/ 03 июня 2019

Я поменял %{QUERY_STRING} на %{REQUEST_URI} в RewriteCond, чтобы выполнить условие.Затем я добавил RewriteRule сопоставитель xi/, чтобы отфильтровать эту часть:

RewriteEngine On
RewriteCond %{REQUEST_URI} ^/xi/(.*)$
RewriteRule ^xi/(.+)$ x/index.html?s=$1 [QSA,L,NE]

# http://website.com/xi/abc -> http://website.com/x/index.html?s=abc
# http://website.com/other/abc -> No rewrite

В этом простом случае вы даже можете опустить RewriteCond:

RewriteEngine On
RewriteRule ^xi/(.+)$ x/index.html?s=$1 [QSA,L,NE]

Редактировать : я использовал этот тестер .htaccess .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...