apache htaccess переписывает URL для удобства seo

#php #apache #.htaccess #mod-rewrite

#php #apache #.htaccess #мод-переписать

Вопрос:

На данный момент я пытаюсь переписать свои URL-адреса для удобства seo, но у меня не получается. Можете ли вы указать, где я могу ошибаться?

Я пытаюсь переписать этот URL:

 http://www.chillisource.co.uk/product?amp;cat=Groceryamp;q=Daves Gourmetamp;page=1amp;prod=B0000DID5Ramp;prodName=Daves_Insanity_Sauce
  

К этому:

 http://www.chillisource.co.uk/product/Grocery/Daves Gourmet/1/B0000DID5R/Daves_Insanity_Sauce
  

Это мой .htaccess

 RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php

RewriteRule ^product/([a-zA-Z0-9] )/([a-zA-Z0-9] )/([a-zA-Z0-9] )/([a-zA-Z0-9] )/([a-zA-Z0-9] ) /product?amp;cat=$1amp;q=$2amp;page=$3amp;prod=$4amp;prodName=$5
  

Первая часть позволяет мне обходиться без .php в файловой системе.

В настоящее время это выдает мне ошибку 500, когда я пытаюсь перейти к:http://www.chillisource.co.uk/product/Grocery/Daves Gourmet/1/B0000DID5R/Daves_Insanity_Sauce

Я прочитал о mod_rewrite, но я начинающий программист, и мне трудно это сделать. Я не понимаю, как $1, $2, $3, $4, $5 какие переменные в моем URL передаются на другую сторону, правильно ([a-zA-Z0-9] )?

Заранее спасибо.

Комментарии:

1. Для дальнейшего использования вы могли бы заглянуть на следующий сайт. Некоторые действительно хорошие, уже работающие коды перезаписи: corz.org/server/tricks/htaccess2.php?page=all

Ответ №1:

1 доллар соответствует вашему первому набору круглых скобок в первой части вашего правила перезаписи. 2 доллара за второй набор круглых скобок и так далее.

Daves Gourmet содержит пробел, который не учитывается в вашем 2-м шаблоне, т. Е. вещи между 2-м набором круглых скобок. Опять вы не заботитесь о _ в URL.

Я бы попробовал это

 RewriteRule ^product/([a-zA-Z] )/([sa-zA-Z0-9] )/([0-9] )/([A-Z0-9] )/([a-zA-Z_] ) /product?amp;cat=$1amp;q=$2amp;page=$3amp;prod=$4amp;prodName=$5
  

Предполагая, что ваш параметр страницы всегда является целым числом, а ваш 4-й параметр содержит только заглавные буквы.