Ошибка перенаправления строки запроса на путь - PullRequest
0 голосов
/ 15 февраля 2019

Я хочу перенаправить параметр запроса get в путь и сохранить возможность использовать параметр GET в коде.

Я изо всех сил пытаюсь найти примеры, исключающие расширение файла, так что, возможно, это то, что меня бросает.

Я пробовал приведенный ниже код, но не получил от него ожидаемых результатов?

RewriteCond %{REQUEST_URI}  ^/spares/$
RewriteCond %{QUERY_STRING} pid=([0-9]*)$
RewriteRule ^(.*)$ /spares/%1 [R=302,L]

Например:

mysite.com / spares /? Pid = x

до

mysite.com / spares / x

РЕДАКТИРОВАНИЕ : копия .htaccess в подкаталоге / dev /.

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /dev/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /dev/index.php [L]
</IfModule>

RewriteEngine On

# To externally redirect with pid
RewriteCond %{THE_REQUEST} \s+spares/\?pid=(.*)\s [NC]
RewriteRule ^ /spares/%1 [R=301,L,NE]

# To internally rewrite to ?pid=
RewriteCond %{QUERY_STRING} pid=(.+)$
RewriteRule ^dev/spares/$ /dev/spares/?pid=%1 [NC,L]

# END WordPress

1 Ответ

0 голосов
/ 15 февраля 2019

Попробуйте с:

RewriteEngine On

# To externally redirect with pid
RewriteCond %{THE_REQUEST} \s/+spares/\?pid=(.*)\s [NC]
RewriteRule ^ /spares/%1 [R=301,L,NE]

# To internally rewrite to ?pid=
RewriteCond %{QUERY_STRING} pid=(.+)$
RewriteRule ^spares/$ /spares/?pid=%1 [NC,L]
...