Htaccess перенаправить определенный подкаталог - PullRequest
2 голосов
/ 28 февраля 2012

Мой текущий файл .htaccess содержит следующие строки:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

Я бы хотел перенаправить www.domain.com/category/automotive/used+car+dealers на www.domain.com/category.php?category=automotive&subcategory=used+car+dealers.

Должен быть динамическим, а не статическим перенаправлением,как у меня будут другие категории и подкатегории?Кто-нибудь может показать мне немного света, как действовать дальше?

Я гуглил и просматривал переполнение стека в течение почти 2 часов, но все еще не могу найти решение.

[Образец 1]

RewriteEngine On
RewriteRule ^category/([\w-+]+)/([\w-+]+)$ category.php?category=$1&subcategory=$2 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

Я настроил abit и могу перенаправить на нужный файл, но каким-то образом страница загружается без CSS и изображений.пожалуйста, порекомендуйте.thankyou.

[Пример 2]

RewriteEngine On
RewriteBase /websitefolder/

RewriteRule ^category/([\w-+]+)/([\w-+]+)$ category.php?category=$1&subcategory=$2 [R,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

Это прекрасно работает только в том случае, если URL-адрес станет category.php? category = автомобильный & подкатегория = подержанные + автомобиль + дилеры вместо / category / automotive /б + автомобиль + дилеров.но я хотел бы иметь последнее.пожалуйста, сообщите

Ответы [ 2 ]

1 голос
/ 28 февраля 2012

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

RewriteEngine On
RewriteBase /

RewriteRule ^(category)/([\w-+]+)$ $1.php?$1=$2 [R,L]

RewriteRule ^(category)/([\w-+]+)/([\w-+]+)$ $1.php?$1=$2&subcategory=$3 [R,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

RewriteEngine On
RewriteBase /websitefolder/

RewriteRule ^category/([\w-+]+)/([\w-+]+)$ category.php?category=$1&subcategory=$2 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

Просто удалите флаг R из:

RewriteRule ^category/([\w-+]+)/([\w-+]+)$ category.php?category=$1&subcategory=$2 [R,L]

Это не изменит URL в браузере.

0 голосов
/ 29 февраля 2012

Вот что должно соответствовать вашим точным вашим потребностям:

RewriteEngine On
RewriteBase /
RewriteRule ^category/([a-zA-Z0-9]+)(/([a-zA-Z0-9]+))?$ category.php?category=$1&subcategory=$3 [QSA,NC,L]

Теперь, если вы хотите что-то более общее, то есть:

www.domain.com/category/automotive/used+car+dealers
=>
www.domain.com/category.php?category=automotive&subcategory=used+car+dealers

и

www.domain.com/title/automotive/used+car+dealers
=>
www.domain.com/title.php?title=automotive&subcategory=used+car+dealers

Пожалуйста, смотрите ответ ThinkingMonkey, он лучше моего :).

...