Как написать правило, чтобы скрыть параметр URL, используя htaccess

0

Я пытаюсь переписать URL-адрес с помощью htaccess. мне нужно

1>   temp.example.com/save.php?item=xxxxx&id=xxx&type=1 
2>   temp.example.com/save.php?item=xxxxx&id=xxx&type=2 

быть как

1>   temp.example.com/save/xxxxx/xxx
2>   temp.example.com/save/xxxxx/xxx

нужно скрыть последний параметр.

мой htaccess имеет

RewriteCond %{THE_REQUEST} \s/save\.php\?item=([_0-9a-zA-Z-]+)\s&id=([_0-9a-   zA-Z-]+)\s&type=([_0-9a-zA-Z-]+)\s [NC]
RewriteRule ^temp/save/%1/%2/%3? [R=301,L]
RewriteRule ^temp/save/([_0-9a-zA-Z-]+)$/([_0-9a-zA-Z-]+)$/([_0-9a-zA-Z-]+)$ /save.php?item=$1&id=$2&type=$3 [L] 

благодаря

  • 0
    Почему вы не хотите, чтобы значение параметра type было в temp.example.com/save/example/2 ? Вы всегда хотите, чтобы type=1 был статически добавлен в save.php ?
  • 0
    да тип вроде статичен, поэтому показывать не надо
Показать ещё 1 комментарий
Теги:
.htaccess
url-rewriting

2 ответа

1

Вы можете использовать эти правила в корневом каталоге.htaccess:

RewriteCond %{THE_REQUEST} /save\.php\?item=([^\s&]+)&id=([^\s&]+)&type=([^\s&]+)\s [NC]
RewriteRule ^ save/%1/%2/%3? [R=302,L]

RewriteRule ^save/([\w-]+)/([\w-]+)/([\w-]+)/?$ save.php?item=$1&id=$2&type=$3 [L,QSA,NC]
  • 0
    у меня есть мой код в поддомене. это будет работать для temp.example.com?
  • 0
    спасибо, дорогой, я пытался, но сейчас получаю ошибку 404
Показать ещё 6 комментариев
0

RewriteEngine On

RewriteRule ^ save.php/([a-zA-Z0-9 _-] +)/(.)/(.) $/Save.php?id=$1&order_id=$2&page_no=$3 [L] RewriteCond% {REQUEST_FILENAME} ! -d RewriteCond% {REQUEST_FILENAME}.php -f RewriteRule ^ (. *) $ $ 1.php

теперь вы можете получить доступ к трем параметрам путем передачи, например, temp.example.com/save/par1/par2

Ещё вопросы

Сообщество Overcoder
Наверх
Меню