2016-09-08 4 views
1

у меня есть этот код в качестве примера для подкатегорию URL,Категории и подкатегории мод переписать

файл является subcategory.php

Ссылка на URL, как это:

<a href="store/subcategory.php?catid=guitars&subcatid=electrics"></a> 

и htaccess до сих пор составляет

RewriteRule ^store/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ subcategory.php?catid=$1&subcatid=$2 [L] 

В результате я хочу выполнить это, Включите этот URL:

www.mysite.com/store/subcategory.php?catid=guitars&subcatid=electrics 

в

www.mysite.com/store/guitars/electrics 

Как я могу это сделать? Что мне не хватает?

ответ

1

Вам необходимо дополнительное правило переадресации:

RewriteEngine On 

RewriteCond %{THE_REQUEST} /subcategory\.php\?catid=([^\s&]+)&subcatid=([^\s&]+) [NC] 
RewriteRule^/store/%1/%2? [R=302,L,NE] 

RewriteRule ^store/([\w-]+)/([\w-]+)/?$ subcategory.php?catid=$1&subcatid=$2 [L,QSA,NC] 
+0

Спасибо, я думаю, что это правильный ответ, так как у меня также есть файл store.php (www.mysite.com/store) в качестве индекса только для этого раздела моего сайта (где перечислены все продукты), использование вашего кода загружает страницу, но без соответствующих стилей – Santiago

+0

css/js и т. д. связано с использованием относительных путей. Вы можете добавить это чуть ниже '' раздела HTML вашей страницы: '' для исправления. – anubhava

0

Вы сделали HTML неправильно. Единственное, что должно URLs когда-либо появиться в стороне клиента HTML являются «довольно» из них:

<a href="http://www.example.com/store/guitars/electrics"> 

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

Смежные вопросы