2012-12-10 6 views
1

У меня нет большого опыта работы с htaccess и mod_rewrite или что-то еще, но как бы удалить его? от URL-адреса, который выглядит примерно так: site.com/?page, поэтому он выглядит как site.com/page?Удалить вопросительный знак из URL

Я стараюсь это на данный момент:

RewriteEngine On 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(index\.php)?\?([^&\ ]+) 
RewriteRule^/%1? [L,R=301] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /index.php?$1 [L] 

Но это просто перенаправляет все, чтобы только site.com индексной страницы, без чего-либо еще в ссылке.

+0

Пожалуйста, не используйте псевдотеги в своем названии. У нас есть * реальные * теги. – Charles

+2

Что означает первый «RewriteCond»? –

+0

@ shiplu.mokadd.im Определяет условие для mod_rewrite? Я думаю, что выражение '/(index\.php)? \? ([^ & \] +)' Может быть неправильным, но я не уверен ... – Jonny

ответ

0

Ваш неверный адрес. Вы хотите совместить вторую группу с %{THE_REQUEST}, а не с первым (это index.php). Таким образом, ваше первое правило должно выглядеть следующим образом:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(index\.php)?\?([^&\ ]+) 
RewriteRule^/%2? [L,R=301] 
# 2 here--------^ 

2-я группировка будет вполне ([^&\ ]+) матч.

0

По вашему вопросу, цитата:

«... как бы один удалить ? из URL, который выглядит примерно так: site.com/?page так это выглядит, как site.com/page»

Это будет делать :

RewriteEngine On 
RewriteRule .* /%{QUERY_STRING}? [L] 
Смежные вопросы