Тупик!.htaccess regex RewriteRule горе - PullRequest
0 голосов
/ 13 октября 2011

Пожалуйста, прости меня, если это уже было объяснено в другом месте. Я гуглил и пробовал что-то последние два часа и до сих пор не могу заставить его работать. Ни один из примеров, которые я нашел до сих пор, не кажется вполне подходящим.

Кажется, это должно быть невероятно просто. Я пытаюсь переписать следующие URL-адреса (исходный и целевой):

/product.cfm?item=17
/product/17

и

/parts.cfm?part=12
/speakers/12

... и я ничего не могу заставить работать.

Я пробовал такие вещи, как:

RewriteCond %{QUERY_STRING} ^part=(.*)$ [NC]
RewriteRule ^/parts.cfm$ /parts/$1 [NC,R=301]

и

RewriteRule ^/parts.cfm?part=(.*)$ /parts/$1 [NC,R=301]

Но я просто получаю страницу 404, которая указывает, что она не проходит. И, к сожалению, у меня нет доступа к журналам на этом сервере, поэтому я не вижу, что происходит на самом деле.

Я все об этом ошибаюсь? Есть ли другой способ справиться с этим? Вероятно, это просто односимвольная опечатка, не так ли?

Любая помощь очень ценится. Спасибо!

1 Ответ

1 голос
/ 13 октября 2011

Вы должны быть в состоянии использовать

RewriteRule ^product/(\d+)$ product.cfm?item=$1 [L]

и

RewriteRule ^speakers/(\d+)$ parts.cfm?part=$1 [L]

для достижения ваших целей.

Первая часть - это входящий URL - вторая часть - это часть, которую вы действительно хотите использовать на сервере. Похоже, вы их сейчас перепутали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...