2015-08-11 2 views
0

Я пытаюсь отладить это в течение последних двух дней, и я нахожусь на своем конце.Apache rewrite- Proxying добавляет дополнительный index.php

Я пытаюсь перенаправить запрос на http://localhost:xxx, когда строка запроса содержит escaped_fragment. Правило перезаписи сопоставлено и направлено на прокси-сервер, но я не уверен, почему правило перезаписывания перезапущено, и к URL-адресу запроса добавляется index.php.

Запрос URL:

http://local.xxx.in/?_escaped_fragment

мой файл .htaccess

RewriteEngine On 

RewriteCond %{HTTP_HOST} ^woohoo.in 
RewriteRule (.*) http://www.woohoo.in/$1 [R=301,L] 

RewriteCond %{HTTP_USER_AGENT} baiduspider|facebookexternalhit|twitterbot|rogerbot|linkedinbot|embedly|quora\ link\ preview|showyoubot|outbrain|pinterest|slackbot|vkShare|W3C_Validator [NC,OR] 
RewriteCond %{QUERY_STRING} _escaped_fragment_ 

# Only proxy the request to Phantomjs if it's a request for HTML 
RewriteRule ^(?!.*?(\.js|\.css|\.xml|\.less|\.png|\.jpg|\.jpeg|\.gif|\.pdf|\.doc|\.txt|\.ico|\.rss|\.zip|\.mp3|\.rar|\.exe|\.wmv|\.doc|\.avi|\.ppt|\.mpg|\.mpeg|\.tif|\.wav|\.mov|\.psd|\.ai|\.xls|\.mp4|\.m4a|\.swf|\.dat|\.dmg|\.iso|\.flv|\.m4v|\.torrent|\.ttf|\.woff))(.*) http://localhost:32768/$2 [NC,P,END,QSA,T=text/html] 

RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} \.html$ 
RewriteRule ^(.*)\.html$ $1 [L,R] 


RewriteRule ^inc/.*$ index.php 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ index.php 

RewriteLog для запроса

[rewrite:trace3] [pid 8971] mod_rewrite.c(475): [client 127.0.0.1:57756] 127.0.0.1 - - [local.woohoo.in/sid#14b31a0][rid#18596f0/initial] [perdir /home/robert/work/projects/gb/giftbigui/] strip per-dir prefix: /home/robert/work/projects/gb/giftbigui/ -> 
[rewrite:trace3] [pid 8971] mod_rewrite.c(475): [client 127.0.0.1:57756] 127.0.0.1 - - [local.woohoo.in/sid#14b31a0][rid#18596f0/initial] [perdir /home/robert/work/projects/gb/giftbigui/] applying pattern '(.*)' to uri '' 
[rewrite:trace4] [pid 8971] mod_rewrite.c(475): [client 127.0.0.1:57756] 127.0.0.1 - - [local.woohoo.in/sid#14b31a0][rid#18596f0/initial] [perdir /home/robert/work/projects/gb/giftbigui/] RewriteCond: input='local.woohoo.in' pattern='^woohoo.in' => not-matched 
[rewrite:trace3] [pid 8971] mod_rewrite.c(475): [client 127.0.0.1:57756] 127.0.0.1 - - [local.woohoo.in/sid#14b31a0][rid#18596f0/initial] [perdir /home/robert/work/projects/gb/giftbigui/] strip per-dir prefix: /home/robert/work/projects/gb/giftbigui/ -> 
[rewrite:trace3] [pid 8971] mod_rewrite.c(475): [client 127.0.0.1:57756] 127.0.0.1 - - [local.woohoo.in/sid#14b31a0][rid#18596f0/initial] [perdir /home/robert/work/projects/gb/giftbigui/] applying pattern '^(?!.*?(\\.js|\\.css|\\.xml|\\.less|\\.png|\\.jpg|\\.jpeg|\\.gif|\\.pdf|\\.doc|\\.txt|\\.ico|\\.rss|\\.zip|\\.mp3|\\.rar|\\.exe|\\.wmv|\\.doc|\\.avi|\\.ppt|\\.mpg|\\.mpeg|\\.tif|\\.wav|\\.mov|\\.psd|\\.ai|\\.xls|\\.mp4|\\.m4a|\\.swf|\\.dat|\\.dmg|\\.iso|\\.flv|\\.m4v|\\.torrent|\\.ttf|\\.woff))(.*)' to uri '' 
[rewrite:trace4] [pid 8971] mod_rewrite.c(475): [client 127.0.0.1:57756] 127.0.0.1 - - [local.woohoo.in/sid#14b31a0][rid#18596f0/initial] [perdir /home/robert/work/projects/gb/giftbigui/] RewriteCond: input='curl/7.35.0' pattern='baiduspider|facebookexternalhit|twitterbot|rogerbot|linkedinbot|embedly|quora\\ link\\ preview|showyoubot|outbrain|pinterest|slackbot|vkShare|W3C_Validator' [NC] => not-matched 
[rewrite:trace4] [pid 8971] mod_rewrite.c(475): [client 127.0.0.1:57756] 127.0.0.1 - - [local.woohoo.in/sid#14b31a0][rid#18596f0/initial] [perdir /home/robert/work/projects/gb/giftbigui/] RewriteCond: input='_escaped_fragment_=1' pattern='_escaped_fragment_' => matched 
[rewrite:trace2] [pid 8971] mod_rewrite.c(475): [client 127.0.0.1:57756] 127.0.0.1 - - [local.woohoo.in/sid#14b31a0][rid#18596f0/initial] [perdir /home/robert/work/projects/gb/giftbigui/] rewrite '' -> 'http://localhost:32768/' 
[rewrite:trace2] [pid 8971] mod_rewrite.c(475): [client 127.0.0.1:57756] 127.0.0.1 - - [local.woohoo.in/sid#14b31a0][rid#18596f0/initial] [perdir /home/robert/work/projects/gb/giftbigui/] escaped URI in per-dir context for proxy, http://localhost:32768/ -> http://localhost:32768/ 
[rewrite:trace2] [pid 8971] mod_rewrite.c(475): [client 127.0.0.1:57756] 127.0.0.1 - - [local.woohoo.in/sid#14b31a0][rid#18596f0/initial] [perdir /home/robert/work/projects/gb/giftbigui/] forcing proxy-throughput with http://localhost:32768/ 
[rewrite:trace1] [pid 8971] mod_rewrite.c(475): [client 127.0.0.1:57756] 127.0.0.1 - - [local.woohoo.in/sid#14b31a0][rid#18596f0/initial] [perdir /home/robert/work/projects/gb/giftbigui/] go-ahead with proxy request proxy:http://localhost:32768/?_escaped_fragment_=1 [OK] 
[rewrite:trace3] [pid 8971] mod_rewrite.c(475): [client 127.0.0.1:57756] 127.0.0.1 - - [local.woohoo.in/sid#14b31a0][rid#1865e00/subreq] [perdir /home/robert/work/projects/gb/giftbigui/] strip per-dir prefix: /home/robert/work/projects/gb/giftbigui/index.php -> index.php 
[rewrite:trace3] [pid 8971] mod_rewrite.c(475): [client 127.0.0.1:57756] 127.0.0.1 - - [local.woohoo.in/sid#14b31a0][rid#1865e00/subreq] [perdir /home/robert/work/projects/gb/giftbigui/] applying pattern '^(?!.*?(\\.js|\\.css|\\.xml|\\.less|\\.png|\\.jpg|\\.jpeg|\\.gif|\\.pdf|\\.doc|\\.txt|\\.ico|\\.rss|\\.zip|\\.mp3|\\.rar|\\.exe|\\.wmv|\\.doc|\\.avi|\\.ppt|\\.mpg|\\.mpeg|\\.tif|\\.wav|\\.mov|\\.psd|\\.ai|\\.xls|\\.mp4|\\.m4a|\\.swf|\\.dat|\\.dmg|\\.iso|\\.flv|\\.m4v|\\.torrent|\\.ttf|\\.woff))(.*)' to uri 'index.php' 
[rewrite:trace4] [pid 8971] mod_rewrite.c(475): [client 127.0.0.1:57756] 127.0.0.1 - - [local.woohoo.in/sid#14b31a0][rid#1865e00/subreq] [perdir /home/robert/work/projects/gb/giftbigui/] RewriteCond: input='curl/7.35.0' pattern='baiduspider|facebookexternalhit|twitterbot|rogerbot|linkedinbot|embedly|quora\\ link\\ preview|showyoubot|outbrain|pinterest|slackbot|vkShare|W3C_Validator' [NC] => not-matched 
[rewrite:trace4] [pid 8971] mod_rewrite.c(475): [client 127.0.0.1:57756] 127.0.0.1 - - [local.woohoo.in/sid#14b31a0][rid#1865e00/subreq] [perdir /home/robert/work/projects/gb/giftbigui/] RewriteCond: input='_escaped_fragment_=1' pattern='_escaped_fragment_' => matched 
[rewrite:trace2] [pid 8971] mod_rewrite.c(475): [client 127.0.0.1:57756] 127.0.0.1 - - [local.woohoo.in/sid#14b31a0][rid#1865e00/subreq] [perdir /home/robert/work/projects/gb/giftbigui/] rewrite 'index.php' -> 'http://localhost:32768/index.php' 
[rewrite:trace2] [pid 8971] mod_rewrite.c(475): [client 127.0.0.1:57756] 127.0.0.1 - - [local.woohoo.in/sid#14b31a0][rid#1865e00/subreq] [perdir /home/robert/work/projects/gb/giftbigui/] escaped URI in per-dir context for proxy, http://localhost:32768/index.php -> http://localhost:32768/index.php 
[rewrite:trace2] [pid 8971] mod_rewrite.c(475): [client 127.0.0.1:57756] 127.0.0.1 - - [local.woohoo.in/sid#14b31a0][rid#1865e00/subreq] [perdir /home/robert/work/projects/gb/giftbigui/] forcing proxy-throughput with http://localhost:32768/index.php 
[rewrite:trace1] [pid 8971] mod_rewrite.c(475): [client 127.0.0.1:57756] 127.0.0.1 - - [local.woohoo.in/sid#14b31a0][rid#1865e00/subreq] [perdir /home/robert/work/projects/gb/giftbigui/] go-ahead with proxy request proxy:http://localhost:32768/index.php?_escaped_fragment_=1 [OK] 

------------ ----- EDIT ----

Моя версия apache 2.4.12, и я обнаружил, что это отлично работает в 2.2.x

+0

Я думаю, что mod_dir ищет ваш DirectoryIndex'а один за другим через подзапрос. Возможно, это связано с этой ошибкой, которая должна была быть исправлена ​​в 2.4.9: PR53929. – covener

+0

Похоже, это исправление может быть недостаточно, если вы используете флаг [P]! – covener

ответ

1

Пробный каталогCheckHandler ON? К сожалению, это необходимо для запуска обновления в PR53929. Я не помню точно, почему это «исправление» не было по умолчанию - возможно, опасайтесь, что 2.4.8 было слишком поздно, чтобы перевернуть поведение.

+0

Проверено согласно вашим предложениям. Похоже, что он работает, но теперь тип содержимого установлен в 'httpd/unix-directory'. Это заставляет браузер загружать мой файл. Как я могу сделать это «text/html»? Любые предложения – robert

+0

Вы можете попробовать T = в перезаписывающем устройстве, которое выполняет проксирование, в качестве другого kludge. – covener

+0

Из кода, H = тоже может это сделать - с любым фиктивным значением. Есть какой-то необъяснимый материал в mod_dir, который будет закорочен – covener

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