Я использую фреймворк PHP Fat-Free (http://fatfree.sourceforge.net/) для разработки веб-сайта, и мне нужно использовать переменные GET, но они не будут анализироваться, потому что я использую Mod Rewrite.
Это текущее состояние моего файла .htaccess:
# Enable rewrite engine and route requests to framework
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L,QSA]
На данный момент я могу запросить страницу с фреймворком, перейдя на www.domain.com/mypage, но мне нужно использовать URL-адреса, такие как www.domain.com/mypage?variable=xyz
Как я могу это сделать? Заранее спасибо!
РЕДАКТИРОВАТЬ:
Я использовал журнал перезаписи с уровнем 3 и запросил www.domain.com/?x=1, и вот что было в журнале:
::1 - - [21/Aug/2010:21:09:28 +1200] [localhost/sid#1545150][rid#2054260/initial] (3) [perdir D:/Development/xampplite/htdocs/] strip per-dir prefix: D:/Development/xampplite/htdocs/ ->
::1 - - [21/Aug/2010:21:09:28 +1200] [localhost/sid#1545150][rid#2054260/initial] (3) [perdir D:/Development/xampplite/htdocs/] applying pattern '.*' to uri ''
::1 - - [21/Aug/2010:21:09:28 +1200] [localhost/sid#1545150][rid#2054260/initial] (1) [perdir D:/Development/xampplite/htdocs/] pass through D:/Development/xampplite/htdocs/
::1 - - [21/Aug/2010:21:09:28 +1200] [localhost/sid#1545150][rid#205a278/subreq] (3) [perdir D:/Development/xampplite/htdocs/] strip per-dir prefix: D:/Development/xampplite/htdocs/index.php -> index.php
::1 - - [21/Aug/2010:21:09:28 +1200] [localhost/sid#1545150][rid#205a278/subreq] (3) [perdir D:/Development/xampplite/htdocs/] applying pattern '.*' to uri 'index.php'
::1 - - [21/Aug/2010:21:09:28 +1200] [localhost/sid#1545150][rid#205a278/subreq] (1) [perdir D:/Development/xampplite/htdocs/] pass through D:/Development/xampplite/htdocs/index.php
::1 - - [21/Aug/2010:21:09:28 +1200] [localhost/sid#1545150][rid#2058270/initial] (3) [perdir D:/Development/xampplite/htdocs/] strip per-dir prefix: D:/Development/xampplite/htdocs/favicon.ico -> favicon.ico
::1 - - [21/Aug/2010:21:09:28 +1200] [localhost/sid#1545150][rid#2058270/initial] (3) [perdir D:/Development/xampplite/htdocs/] applying pattern '.*' to uri 'favicon.ico'
::1 - - [21/Aug/2010:21:09:28 +1200] [localhost/sid#1545150][rid#2058270/initial] (2) [perdir D:/Development/xampplite/htdocs/] rewrite 'favicon.ico' -> 'index.php'
::1 - - [21/Aug/2010:21:09:28 +1200] [localhost/sid#1545150][rid#2058270/initial] (3) [perdir D:/Development/xampplite/htdocs/] add per-dir prefix: index.php -> D:/Development/xampplite/htdocs/index.php
::1 - - [21/Aug/2010:21:09:28 +1200] [localhost/sid#1545150][rid#2058270/initial] (2) [perdir D:/Development/xampplite/htdocs/] trying to replace prefix D:/Development/xampplite/htdocs/ with /
::1 - - [21/Aug/2010:21:09:28 +1200] [localhost/sid#1545150][rid#2058270/initial] (1) [perdir D:/Development/xampplite/htdocs/] internal redirect with /index.php [INTERNAL REDIRECT]
::1 - - [21/Aug/2010:21:09:28 +1200] [localhost/sid#1545150][rid#3b68870/initial/redir#1] (3) [perdir D:/Development/xampplite/htdocs/] strip per-dir prefix: D:/Development/xampplite/htdocs/index.php -> index.php
::1 - - [21/Aug/2010:21:09:28 +1200] [localhost/sid#1545150][rid#3b68870/initial/redir#1] (3) [perdir D:/Development/xampplite/htdocs/] applying pattern '.*' to uri 'index.php'
::1 - - [21/Aug/2010:21:09:28 +1200] [localhost/sid#1545150][rid#3b68870/initial/redir#1] (1) [perdir D:/Development/xampplite/htdocs/] pass through D:/Development/xampplite/htdocs/index.php
Не уверены, поможет ли это?
QSA работает не совсем так, см. Здесь flags_qsa. Я думаю, вам нужно захватить новую строку запроса, у вас ее нет.
Попробуйте что-то вроде этого
# Enable rewrite engine and route requests to framework
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php?$1 [L,QSA]
Возможно, вам потребуется добавить ведущую /
к index.php?$1
в зависимости от того, где расположены правила перезаписи.
В QSA
flag уже должен позаботиться об этом. Активируйте свой RewriteLog и посмотрите, как URL-адреса переписываются внутри.