2015-06-03 5 views
1

У меня есть следующее правило для перезаписи URL-адресов, которые работают для параметров одного слова. Однако это не работает, если в переменной есть «-». Как я могу изменить это, чтобы выполнить это?htaccess - переписать URL-адреса с параметром запроса

Старый URL: domain.com/medications/?drug=medication-title

Новый URL: domain.com/medications/medication-title

RewriteRule ^medications/([^/d]+)/?$ medications/?drug=$1 [QSA] 

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

Благодарим за помощь.

+0

Это может помочь вам: http://stackoverflow.com/questions/14379842/why-if-i-put- a-dash-in-a-rule-in-my-htaccess-doesnt-work – richerlariviere

ответ

1

Вам нужно исправить регулярное выражение, используя это правило в корневом .htaccess:

Options -MultiViews 
RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^medications/([^/]+)/?$ medications/?drug=$1 [QSA,L,NC] 
+0

К сожалению, это дает мне внутреннюю ошибку сервера. Если я добавлю «d» обратно в аспекты ([^/d] +), он будет обрабатывать параметры одного слова, но не те, у которых есть «-». –

+0

попробуйте мой обновленный ответ. – anubhava

+1

Бинго! Это работает. Большое спасибо за быструю помощь. –