2014-09-17 14 views
1

Я пытаюсь перенаправить отHtaccess перенаправление с переменной

/med.php?med=№

в

/мед? Мед = №

для всего сайта. До сих пор я здесь:

RewriteCond %{QUERY_STRING} med=([0-9]+) 
RewriteRule ^/?(med.php)?$ http://example.com/med?med=%1? [L,R=301] 

Этот код не работает («сервер не найден»). Кроме того, он добавляет странные символы, такие как% 3f, в конец URL-адреса.

Теперь Htaccess содержание выглядит следующим образом:

Options +FollowSymLinks 
#php_value session.use_trans_sid 0 
#php_value register_globals 1 
php_flag session.use_trans_sid off 
php_flag register_globals on 

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^med$ med.php [L,NC] 
</IfModule> 
+0

так в чем проблема? –

+0

Этот код не работает. –

ответ

0

Вы должны использовать его как это:

Options +FollowSymLinks 
#php_value session.use_trans_sid 0 
#php_value register_globals 1 
php_flag session.use_trans_sid off 
php_flag register_globals on 

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/

RewriteCond %{THE_REQUEST} /med\.php\?med=([0-9]+) [NC] 
RewriteRule^/med [L,R=301] 

RewriteRule ^med$ med.php [L,NC] 
</IfModule> 

Строка запроса автоматически переносится на целевой URL.

+0

К сожалению, это не работает. Я подозревал, что вы забыли удалить RewriteRule^med $ med.php [L, NC], удалили его самостоятельно, но без результата. –

+0

URL-адрес с .php все еще может быть открыт, а один без .php перестает работать. –

+0

О, у меня была небольшая проблема. Теперь это исправлено, и вам нужны оба правила. Один для перенаправления 'med.php' на'/med' в браузерах и других для внутренней маршрутизации. – anubhava

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