2014-11-16 4 views
0

Я пытаюсь сделать следующее перенаправление..htaccess перенаправляет с двумя параметрами

website.abc/index.php?page=foo // With one parameter 
website.abc/foo 

website.abc/index.php?page=foo&article=bar/With a second parameter 
website.abc/foo/bar 

И он также должен быть перенаправлен назад.

Если я тип website.abc/foo/bar он должен внутренне перенаправлен на index.php? Страницу = Foo & статьи = бар

я могу заставить его работать с одним параметром, но как только я использую второй, URL выглядит, как это и дает мне 404:

website.abc/foo&article=bar. 

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

Кто-нибудь знает, как это сделать?

ответ

0

Go, как это:

RewriteEngine On 

RewriteCond %{REQUEST_URI} ^/index\.php [NC] 
RewriteCond %{QUERY_STRING} \bpage=([^&]+)\b [NC] 
RewriteCond %{QUERY_STRING} \barticle=([^&]+)\b [NC] 
RewriteRule .* /%1/%2/? [R=302,L] 

RewriteCond %{REQUEST_URI} ^/index\.php [NC] 
RewriteCond %{QUERY_STRING} \bpage=([^&]+)\b [NC] 
RewriteRule .* /%1/? [R=302,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]+)(?:/([^/]+)/?)?$ index.php?page=$1&article=$2 [L,NC] 
+0

Этот пример дает мне ошибки 404 на каждой странице, и если я нахожусь на 2-ом уровне URL выглядит следующим образом: website.abc/bar// – Teepo

+0

RewriteCond% { REQUEST_FILENAME}! -f Добавив эту строку выше третьего QUERY_STRING, я избавился от 404, и я присоединился к первым двум строкам запроса в одну строку. Теперь URL-адрес отображается правильно, но на втором уровне он дает мне ошибку: ERR_TOO_MANY_REDIRECTS – Teepo

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