Почему .htaccess всегда возвращает целевую страницу в качестве переменной здесь? - PullRequest
1 голос
/ 23 июля 2011

В моем файле .htaccess есть следующее:

RewriteEngine on
RewriteBase / 
RewriteRule ^(.*)$ page.php?query=$1

однако, независимо от того, что я печатаю в URL, $1 всегда равно page.php

ЧтоЯ ожидаю, что произойдет:

myurl.com/test   >> myurl.com/page.php?query=test

Что происходит:

myurl.com/test >> myurl.com/page.php?query=page.php

1 Ответ

1 голос
/ 23 июля 2011

Скорее всего, у вас 2 перенаправления.page.php сам перенаправляется на page.php?query=page.php.Вы должны исключить его из перенаправления.А еще лучше исключить все реально существующие файлы и каталоги.Кроме того, добавьте [QSA'] to append any additional querystring params, as well as [L] `, чтобы остановить обработку любых дальнейших переписываний, которые могут появиться позже в файле.

RewriteEngine on
RewriteBase / 

# if the request is NOT for a real file or directory
# (page.php is a real existing file)
# do the rewrite
RewriteCond %{REQUEST_URI} !-f
RewriteCond %{REQUEST_URI} !-d
RewriteRule ^(.*)$ page.php?query=$1 [L,QSA]
...