캐시를 구현하기 위해 파일이나 디렉토리가없는 URL을 리디렉션하고 싶습니다. 구성은 (을 httpd.conf에서 .htaccess로하지 않음) 다음과 같습니다Apache mod_rewrite가 -f -and -d를 사용하여 기존 파일을 사용하지 않음
<Directory /srv/xxx/htdocs>
Options FollowSymLinks +Indexes
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^text/([0-9]+)$ /page.php?id_text=$1 [QSA]
RewriteRule ^([^/]+/)*([A-Za-z0-9_]+)$ /page.php?url=$2 [QSA]
</Directory>
그러나 모든 파일 이름을 다시 쓰기 로그 쇼로 다시 쓰기 공장을 통해 실행되는 기존 파일의 심지어는. 따라서 기존 파일을 사용할 수 없으므로 파일 시스템 캐시를 사용할 수 없습니다.
원인은 무엇입니까?
요청 http://ovula.xxx.net/Ovula/Kinderwunsch__ich_will_schwanger_werden
파일이 존재 : 재 작성 로그에서
[email protected]:/srv/ovula.xxx.net/htdocs$ pwd
/srv/ovula.xxx.net/htdocs
[email protected]:/srv/ovula.xxx.net/htdocs$ ls Ovula
Kinderwunsch__ich_will_schwanger_werden
[email protected]:/srv/ovula.xxx.net/htdocs$
:
80.134.205.165 - - [17/Aug/2011:08:49:00 +0200] [ovula.xxx.net/sid#2b0573ee35d8][rid#2b0574658288/initial] (2) init rewrite engine wit
h requested uri /Ovula/Kinderwunsch__ich_will_schwanger_werden
80.134.205.165 - - [17/Aug/2011:08:49:00 +0200] [ovula.xxx.net/sid#2b0573ee35d8][rid#2b0574658288/initial] (3) applying pattern '^text
/([0-9]+)$' to uri '/Ovula/Kinderwunsch__ich_will_schwanger_werden'
80.134.205.165 - - [17/Aug/2011:08:49:00 +0200] [ovula.xxx.net/sid#2b0573ee35d8][rid#2b0574658288/initial] (3) applying pattern '^([^/
]+/)*([A-Za-z0-9_]+)$' to uri '/Ovula/Kinderwunsch__ich_will_schwanger_werden'
80.134.205.165 - - [17/Aug/2011:08:49:00 +0200] [ovula.xxx.net/sid#2b0573ee35d8][rid#2b0574658288/initial] (1) pass through /Ovula/Kin
derwunsch__ich_will_schwanger_werden
80.134.205.165 - ovula [17/Aug/2011:08:49:00 +0200] [ovula.xxx.net/sid#2b0573ee35d8][rid#2b0574658288/initial] (3) [perdir /srv/ovula.
xxx.net/htdocs/] strip per-dir prefix: /srv/ovula.xxx.net/htdocs/Ovula/Kinderwunsch__ich_will_schwanger_werden -> Ovula/Kinderw
unsch__ich_will_schwanger_werden
80.134.205.165 - ovula [17/Aug/2011:08:49:00 +0200] [ovula.xxx.net/sid#2b0573ee35d8][rid#2b0574658288/initial] (3) [perdir /srv/ovula.
xxx.net/htdocs/] applying pattern '^text/([0-9]+)$' to uri 'Ovula/Kinderwunsch__ich_will_schwanger_werden'
80.134.205.165 - ovula [17/Aug/2011:08:49:00 +0200] [ovula.xxx.net/sid#2b0573ee35d8][rid#2b0574658288/initial] (3) [perdir /srv/ovula.
xxx.net/htdocs/] strip per-dir prefix: /srv/ovula.xxx.net/htdocs/Ovula/Kinderwunsch__ich_will_schwanger_werden -> Ovula/Kinderw
unsch__ich_will_schwanger_werden
80.134.205.165 - ovula [17/Aug/2011:08:49:00 +0200] [ovula.xxx.net/sid#2b0573ee35d8][rid#2b0574658288/initial] (3) [perdir /srv/ovula.
xxx.net/htdocs/] applying pattern '^([^/]+/)*([A-Za-z0-9_]+)$' to uri 'Ovula/Kinderwunsch__ich_will_schwanger_werden'
80.134.205.165 - ovula [17/Aug/2011:08:49:00 +0200] [ovula.xxx.net/sid#2b0573ee35d8][rid#2b0574658288/initial] (2) [perdir /srv/ovula.
xxx.net/htdocs/] rewrite 'Ovula/Kinderwunsch__ich_will_schwanger_werden' -> '/page.php?url=Kinderwunsch__ich_will_schwanger_werden'
80.134.205.165 - ovula [17/Aug/2011:08:49:00 +0200] [ovula.xxx.net/sid#2b0573ee35d8][rid#2b0574658288/initial] (3) split uri=/page.php?url=Kinderwunsch__ich_will_schwanger_werden -> uri=/page.php, args=url=Kinderwunsch__ich_will_schwanger_werden
요청한 URL과 실제 파일 이름을 모두 표시 할 수 있습니까? –
어떤 규칙이 의도 한대로 작동하지 않습니다 :이 하나는 /page.php? id_text = 또는 두 번째 것은'/page.php? url ='?? – LazyOne
모든 규칙이 적용됩니다. 이것이 문제입니다. 기존 파일에는 적용하지 않아야합니다. – smantscheff