문이 Rewrite* 규칙을 위반함
Apache/2.4.34에서 표준 워드프레스 액세스 규칙을 사용하고 있습니다.추가하면<If>브레이크를 밟으면 다시 씁니다.
# DEBUG is set to TRUE
<If "-T env('DEBUG')">
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
</If>
다음을 제외한 모든 페이지/반환: 잘못된 요청 브라우저가 이 서버가 이해할 수 없는 요청을 보냈습니다.
blog.local 172.20.0.1 - - [30/Sep/2018:17:07:58 +0000] "GET /2018/09/19/popular/ HTTP/1.1" 400 226 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36"
[Sun Sep 30 17:07:58.202467 2018] [rewrite:trace3] [pid 7:tid 140686203255528] mod_rewrite.c(482): [client 172.20.0.1:56856] 172.20.0.1 - - [blog.local/sid#55cd2e1aec50][rid#55cd2e246a80/initial] [perdir *If/] add path info postfix: /var/www/html/web/2018 -> /var/www/html/web/2018/09/19/popular/
[Sun Sep 30 17:07:58.202511 2018] [rewrite:trace3] [pid 7:tid 140686203255528] mod_rewrite.c(482): [client 172.20.0.1:56856] 172.20.0.1 - - [blog.local/sid#55cd2e1aec50][rid#55cd2e246a80/initial] [perdir *If/] applying pattern '^index\\.php$' to uri '/var/www/html/web/2018/09/19/popular/'
[Sun Sep 30 17:07:58.202529 2018] [rewrite:trace3] [pid 7:tid 140686203255528] mod_rewrite.c(482): [client 172.20.0.1:56856] 172.20.0.1 - - [blog.local/sid#55cd2e1aec50][rid#55cd2e246a80/initial] [perdir *If/] add path info postfix: /var/www/html/web/2018 -> /var/www/html/web/2018/09/19/popular/
[Sun Sep 30 17:07:58.202543 2018] [rewrite:trace3] [pid 7:tid 140686203255528] mod_rewrite.c(482): [client 172.20.0.1:56856] 172.20.0.1 - - [blog.local/sid#55cd2e1aec50][rid#55cd2e246a80/initial] [perdir *If/] applying pattern '^wp-admin$' to uri '/var/www/html/web/2018/09/19/popular/'
[Sun Sep 30 17:07:58.202557 2018] [rewrite:trace3] [pid 7:tid 140686203255528] mod_rewrite.c(482): [client 172.20.0.1:56856] 172.20.0.1 - - [blog.local/sid#55cd2e1aec50][rid#55cd2e246a80/initial] [perdir *If/] add path info postfix: /var/www/html/web/2018 -> /var/www/html/web/2018/09/19/popular/
[Sun Sep 30 17:07:58.202570 2018] [rewrite:trace3] [pid 7:tid 140686203255528] mod_rewrite.c(482): [client 172.20.0.1:56856] 172.20.0.1 - - [blog.local/sid#55cd2e1aec50][rid#55cd2e246a80/initial] [perdir *If/] applying pattern '^' to uri '/var/www/html/web/2018/09/19/popular/'
[Sun Sep 30 17:07:58.202619 2018] [rewrite:trace4] [pid 7:tid 140686203255528] mod_rewrite.c(482): [client 172.20.0.1:56856] 172.20.0.1 - - [blog.local/sid#55cd2e1aec50][rid#55cd2e246a80/initial] [perdir *If/] RewriteCond: input='/var/www/html/web/2018' pattern='-f' => not-matched
[Sun Sep 30 17:07:58.202638 2018] [rewrite:trace4] [pid 7:tid 140686203255528] mod_rewrite.c(482): [client 172.20.0.1:56856] 172.20.0.1 - - [blog.local/sid#55cd2e1aec50][rid#55cd2e246a80/initial] [perdir *If/] RewriteCond: input='/var/www/html/web/2018' pattern='-d' => not-matched
[Sun Sep 30 17:07:58.202653 2018] [rewrite:trace3] [pid 7:tid 140686203255528] mod_rewrite.c(482): [client 172.20.0.1:56856] 172.20.0.1 - - [blog.local/sid#55cd2e1aec50][rid#55cd2e246a80/initial] [perdir *If/] add path info postfix: /var/www/html/web/2018 -> /var/www/html/web/2018/09/19/popular/
[Sun Sep 30 17:07:58.202666 2018] [rewrite:trace3] [pid 7:tid 140686203255528] mod_rewrite.c(482): [client 172.20.0.1:56856] 172.20.0.1 - - [blog.local/sid#55cd2e1aec50][rid#55cd2e246a80/initial] [perdir *If/] applying pattern '.' to uri '/var/www/html/web/2018/09/19/popular/'
[Sun Sep 30 17:07:58.202681 2018] [rewrite:trace2] [pid 7:tid 140686203255528] mod_rewrite.c(482): [client 172.20.0.1:56856] 172.20.0.1 - - [blog.local/sid#55cd2e1aec50][rid#55cd2e246a80/initial] [perdir *If/] rewrite '/var/www/html/web/2018/09/19/popular/' -> 'index.php'
[Sun Sep 30 17:07:58.202693 2018] [rewrite:trace3] [pid 7:tid 140686203255528] mod_rewrite.c(482): [client 172.20.0.1:56856] 172.20.0.1 - - [blog.local/sid#55cd2e1aec50][rid#55cd2e246a80/initial] [perdir *If/] add per-dir prefix: index.php -> *If/index.php
마지막 메시지는 완전히 이상합니다.add per-dir prefix: index.php -> *If/index.php
뭐가 잘못됐어요?
이것들과 비슷한 사건을 맡았습니다.htaccess규칙:
<If "%{REQUEST_URI} =~ m#^/resources/data/character/[0-9]{1,10}/(avatar|refsheet)\.png$#">
# ... Other stuff here ...
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ resources/generic/default-refsheet.png
</If>
이러한 조건에서 요청은 상대 경로로 다시 작성됩니다.resources/generic/default-refsheet.png원래 요청한 파일이 존재하지 않는 경우(및 해당 파일이 의 정규식과 일치하는 경우)<If>), 벙어리로 이어집니다.*If/추가 중인 접두사입니다.
디렉토리 접두사가*If/Apache에서 사용하는 내용은 Pleaceholder입니다.<If>는 실제 디렉터리 접두사를 계산하기 전에 항상 먼저 적용됩니다.
그런 경우, 다시 쓴 URL을 상대적으로 유지할 방법을 찾지 못했기 때문에 "절대"(absolute는 실제로는 여전히 상대적이기 때문에 따옴표 안에 있습니다)를 사용했습니다.DocumentRoot가상 호스트의, 그러나 위치와 관련이 없음htaccessis). 따라서 규칙을 다음으로 변경합니다./resources/generic/default-refsheet.png(참고:/1위):
<If "%{REQUEST_URI} =~ m#^/resources/data/character/[0-9]{1,10}/(avatar|refsheet)\.png$#">
# ...
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ /resources/generic/default-refsheet.png
</If>
이 경우 다시 작성된 URL 앞에 덤이 붙지 않습니다.*If/dir 접두사
그래서 당신의 문제를 위해, 저는 putinta를 시도할 것입니다./(또는 a)/path/to/wordpress/from/document_root/) 다시 작성된 모든 규칙 앞에서:
# DEBUG is set to TRUE
<If "-T env('DEBUG')">
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ /wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) /$1 [L]
RewriteRule ^(.*\.php)$ /$1 [L]
RewriteRule . /index.php [L]
</If>
하지만, 효과가 있을지, 왜 효과가 있는지에 대해서는 100% 확신할 수 없습니다. (따라서 제가 원래 제안한 현상금)
If 문을 다음으로 변경할 수 있습니다.
<If "env('DEBUG') == true">
언급URL : https://stackoverflow.com/questions/52580249/if-statement-breaks-rewrite-rules
'programing' 카테고리의 다른 글
| PL/SQL 패키지가 잘못됨 (0) | 2023.06.14 |
|---|---|
| iOS 6에서 자동 레이아웃을 활성화하는 동시에 iOS 5와 역호환 가능 (0) | 2023.06.09 |
| CSV 파일을 에서 강력하게 입력된 데이터 구조로 가져옵니다.그물 (0) | 2023.06.09 |
| 자동 레이아웃을 사용하여 UIScrollview에 제약 조건을 설정하려면 어떻게 해야 합니까? (0) | 2023.06.09 |
| Oracle - 모든 사용자에게 권한 부여 (0) | 2023.06.09 |