Как изменить параметр метода get на сегменты в mod_rewrite?

0

У меня есть такой URL.

http://localhost:8080/computer/products.php?cid=3

я должен изменить по следующим сегментам.

http://localhost:8080/computer/products/3

есть ли какой-либо возможный способ преобразования в сегменты в mod rewrite.

Теги:
.htaccess

3 ответа

0
Лучший ответ

Попробуйте это в файле.htaccess:

Options +FollowSymLinks
RewriteEngine On

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^computer/(\w+)/(\w+)$ computer/$1.php?cid=$2 [L,PT]

Вы можете перенести любую часть из исходного URL с помощью регулярных выражений regex.

В твоем случае:

^computer/ (\w+) /         (\w+) $
           ⇓               ⇓
computer/  $1    .php?cid= $2

В конкретной ситуации:

computer/ products /         3
          ⇓                  ⇓
computer/ products .php?cid= 3

Если это не работает, проверьте, включены ли файлы.htaccess:

AllowOverride All

Кроме того, вы можете поместить код перезаписи в файл конфигурации apache.

  • 0
    Не работает @ Давид Я получаю то же сообщение об ошибке.
  • 0
    Ваш файл существует ( [yourwebroot]/computer/products.php )? У него есть разрешение на чтение?
Показать ещё 4 комментария
2

Этот код можно использовать в файле DOCUMENT_ROOT/.htaccess:

RewriteEngine On
RewriteBase /

RewriteRule ^([\w-]+)/([\w-]+)/(\d+)/?$ /$1/$2.php?cid=$3 [L,QSA]
  • 0
    Я получаю Объект не найден!
  • 0
    Где находится этот htaccess? Он должен быть в корне вашего веб-сайта и убедиться, что нет других правил.
Показать ещё 1 комментарий
0

вы можете попробовать с помощью этого простого кода в вашем.htaccess

RewriteEngine on RewriteRule ^/компьютер/продукты/([0-9] +) $/computer/products.php?cid=$1

Надеюсь, я тебе помогу. Marco

Ещё вопросы

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