Ответ 1
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !index.php RewriteRule .* index.php?url=$0 [QSA,L]
Вам нужно QSA в правиле перезаписи.
Вот что у меня до сих пор:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !index.php
RewriteRule .* index.php?url=$0 [L]
Но когда я перехожу к soemthing как /a?b=c
, а затем проверяю параметры GET, я получаю a
для url
, а b
теряется. Как я могу сохранить это?
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !index.php RewriteRule .* index.php?url=$0 [QSA,L]
Вам нужно QSA в правиле перезаписи.
Как насчет использования директивы FallbackResource: "Определите URL-адрес по умолчанию для запросов, которые не отображаются в файл"
<Directory /web/example.com/htdocs/blog>
FallbackResource /index.php
</Directory>
Таким образом, вам не нужно вызывать модуль modRewrite для каждого запроса.
http://httpd.apache.org/docs/2.2/mod/mod_dir.html#fallbackresource