2010-08-24 3 views

ответ

1

что-то вроде этого (Google вокруг для правильного синтаксиса)

RewriteEngine On 
RewriteBase/
RewriteRule ^page.php?go=login.php /login [L] 
+0

Недостаток использования этого, 'page.php? Something & go = login.php' не работает, и он по-прежнему действует на' page.php? Go = login.phpjunk' – Lekensteyn

+0

google для правильного синтаксиса и как обойти эти проблемы. , например. добавить $ после login.php, чтобы предотвратить запуск login.phpjunk – JohnSmith

2

Это должно сделать:

# Assuming that "RewriteEngine On" has already been called 
RewriteCond %{QUERY_STRING} ^(.*&)?go=([a-z]+)\.php(&.*)?$ 
RewriteRule page.php %2? 

Что здесь происходит? Во-первых, RewriteCond соответствует строке запроса, содержащей go=something.php, где «что-то» захватывается ([a-z]+). Затем RewriteRule использует содержимое второй группы захвата из RewriteCond, содержащее «something.php». Значок вопроса в конце концов избавляется от исходной строки запроса.

Примечание: если вы хотите сохранить остальную часть строки запроса, исключая параметр go=..., все становится немного сложнее.

Дополнительную информацию см. В документах от http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html.

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