Хорошо, у меня есть файл .htaccess, содержащий этот
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php?p=%{REQUEST_URI}&%{QUERY_STRING} [L]
</IfModule>
Проблема в том, что в apache 2.2.22 p
а другие объекты запроса не проходят, но отлично работает в apache 2.4.2.
Так что в основном в apache 2.2.22 он просто перенаправляет все на index.php, но у него нет get
объекты.
Любая помощь, спасибо.
Обновить
Хорошо, я изменил строку
RewriteRule . /index.php?p=%{REQUEST_URI}&%{QUERY_STRING} [L]
к
RewriteRule ^(.*) /index.php?p=$1 [L,QSA]
А теперь на apache 2.2.22 p
GET не проходит, но все добавляемые мной конкретные запросы проходят.
Так что если я сделаю
http://localhost/index/fun/buns/funds?man=woman
на 2.4.2 я получаю
array (size=2)
'p' => string 'index/fun/buns/funds' (length=20)
'man' => string 'woman' (length=5)
а на 2.2.22 получаю
array(1) {
["man"]=>
string(5) "woman"
}
Чтобы быть ясным Я хочу, что происходит в 2.4.2, а 2.2.22 не работает.
Другое обновление Хорошо, похоже, что происходит следующее: когда я делаю / index / something, он автоматически принимает index.php и игнорирует его, он автоматически добавляет к нему .php, когда я этого не хочу. Есть идеи, как это остановить?
Необходимо поставить доп. -MultiViews
в файл httpd.conf.