2013-12-06 3 views
0

Я вытаскиваю свои волосы, пытаясь заставить правило перезаписи URL-адресов работать с использованием .htaccess. Mod_rewrite включен, и мне удалось получить 301 перенаправление на работу (от/beta до/Beta /), поэтому я знаю, что .htaccess способен работать.Не удалось получить .htaccess RewriteRule для работы

В основном я пытаюсь получить /Beta/Page.php?id=page & вкладку = услуги & табетических = tab1 стать/странице/услугами (и в идеале оставить из табетического, если он не собирается сломать сайт его удаление).

Код я работаю в настоящее время является:

Options +FollowSymLinks 
RewriteEngine on 
RewriteRule ^/Beta/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/?$ /Beta/Page.php?id=$1&tab=$2&tabid=$3 

redirect 301 /beta http://www.example.com/Beta/ 

Любая помощь будет с благодарностью принят.

ответ

0

Снимите ведущую косую черту:

Options +FollowSymLinks 
RewriteEngine on 

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(Beta)/[^.]+\.php\?id=([^&]+)&tab=([^\s&]*)&tabid=([^\s&]+) [NC] 
RewriteRule^/%1/%2/%3/%4? [R=302,L] 

RewriteRule ^Beta/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/?$ /Beta/Page.php?id=$1&tab=$2&tabid=$3 [L,QSA] 

Это внешне перенаправлять:

/Beta/Page.php?id=page&tab=services&tabid=tab1

в

/Beta/page/services/tab1

и перепишем же URI внутри.

Также .htaccess соответствует директиве каталога, и Apache передает текущий путь каталога (таким образом, ведущую косую черту) от шаблона URI RewriteRule.

+0

Спасибо за отзыв. Боюсь, что это все равно не имеет никакого эффекта. Я все еще получаю http://www.example.com/Beta/Page.php?id=page&tab=services&tabid=tab1 –

+0

Что вы ожидали вместо: 'http://www.example.com/Beta/Page .php? id = page & tab = services & tabid = tab1'? – anubhava

+0

http://www.example.com/Beta/page/services/tab1 (хотя я бы хотел, если бы не было последней переменной ('tabid'), хотя я не уверен, что это испортит страницу –