2012-03-05 4 views
1

Я хочу переписать URL-адрес с .htaccess и сделать 301 перенаправление на него..htaccess rewrite url [apache]

оригинальный URL, как это HTTP: // Localhost/лаборатории/customer_132/Кунда = GOTEBORG-Стад

Я хочу, чтобы это выглядело, как это и перенаправить его на

HTTP: // localhost/labs/customer_132 /? page_id = 11 # goteborg-stad

Пробовал разные решения, но я не понимаю его.

Благодарим за оказанную помощь!

+0

'page_id = 11' даже нет в вашем исходном URI? – anubhava

+0

Да, я знаю, какая последняя часть строки «осталась» и изменила ее часть. Его изменение страницы ajax с помощью Wordpress. –

ответ

1

Прямой доступ к строке запроса невозможен с помощью строки RewriteRule; вместо этого вам потребуется предшествующий RewriteCond, который проверяет наличие поля kund и фиксирует его значение. Затем вы можете использовать %N в RewriteRule, чтобы использовать любые полученные значения.

RewriteEngine On 

RewriteCond %{QUERY_STRING} kund=([\w\-]+) 
RewriteRule ^/labs/customer_132/ /labs/customer_132/?page_id=11#%1 [NC,R,L] 
+0

Спасибо, Бородин, попробуй! вернуться, если он не работает :) –

-1

Вам нужно будет повернуть Rewrite двигатель на в файле .htaccess:

RewriteEngine On 

Тогда для одного URL перенаправления должно работать (если .htaccess файл находится в корневой папке или сервер).

Редактировать: Вам необходимо проверить условие строки запроса, которое будет соответствовать, если строка запроса точно равна kund=goteborg-stad (в верхнем или нижнем регистре).

RewriteCond %{QUERY_STRING} ^kund=goteborg-stad$ [NC] 
RewriteRule ^labs\/customer_132\/$ /labs/customer_132/?page_id=11#goteborg-stad [NE,R,L] 

The NE говорит Apache не избежать # символа в перенаправлении.

Если вы хотите перенаправить несколько URL-адресов (например, изменится ли идентификатор клиента?), Вам необходимо уточнить.

+0

-1: «RewriteRule», как это, будет * никогда * соответствовать, поскольку строка запроса удаляется из URL, прежде чем «RewriteRule» увидит это. – Borodin

+0

Жаль, что я был глуп. Используйте% {QUERY_STRING}, чтобы просмотреть запрос. Затем перенаправьте, как обычно, но убедитесь, что вы включили '[NE]', поэтому хэш не закодирован в '% 23', как в вашем ответе. Я не использовал запрос 'kund' в качестве фрагмента, поскольку неясно, нужно ли это, поскольку все они будут перенаправлены на тот же' page_id'. – Jack