정적 웹 사이트가 루트 폴더에 있고 Wordpress가 하위 폴더에 있는 설정이 있습니다. 따라서 모든 Wordpress 관련 요청은 하위 폴더로 이동해야 하는 동안 index.html에 대한 모든 요청을 다시 작성해야 합니다. 저는 두 개의 .htaccess 파일을 사용하여 이 작업을 수행하고 있습니다. 하나는 루트에 있고 다른 하나는 Wordpress 하위 폴더에 있습니다.
루트 .htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/wp-.+
RewriteCond %{REQUEST_URI} !^/wordpress/
RewriteRule (wp-.*)$ /wordpress/$1 [L]
# Rewrite rule for frontend
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
</IfModule>
WordPress 하위 폴더 .htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>
이것은 작동하지만 열려고 하면 /wp-admin/
리디렉션되어 /wp-login.php?redirect_to=https%3A%2F%2Fwww.example.com%2Fwordpress%2Fwp-admin%2F&reauth=1
하위 폴더가 URL에 노출됩니다.
하위 폴더를 숨기는 방법이 있나요?
답변1
WordPress 관련 요청에 대한 URL에서 하위 폴더를 숨기려면 설정을 약간 수정하면 됩니다. 루트 .htaccess 파일을 그대로 유지할 수 있지만 WordPress 하위 폴더의 .htaccess 파일을 일부 변경하세요. 방법은 다음과 같습니다.
- WordPress 하위 폴더( /wordpress/)에서 .htaccess 파일을
e.g.,
다음과 같이 수정합니다.
URL의 하위 폴더 노출을 방지하려면 이 줄을 추가하세요.
RewriteCond %{REQUEST_URI} !^/wordpress/
RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /wordpress/index.php [L]
RewriteCond %{REQUEST_URI} !^/wordpress/ 조건을 추가하면 /wp-admin/ 폴더에 대한 요청이 이 재작성 규칙의 영향을 받지 않으므로 하위 폴더가 URL에 노출되지 않습니다. WordPress 관련 요청의 경우.
루트 .htaccess 파일에서 다음 재작성 규칙을 단순화할 수 있습니다
RewriteEngine 켜기index.html
.이 규칙에서 /wordpress/ 하위 폴더에 대한 요청을 제외합니다.
RewriteCond %{REQUEST_URI} !^/wordpress/
프런트엔드 규칙 다시 작성
RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.html [L]
이러한 수정을 통해 WordPress 관련 요청은 여전히 WordPress 하위 폴더에서 처리되며 /wp-admin/에 액세스할 때 하위 폴더가 URL에 노출되지 않습니다. 다른 요청은 이전과 마찬가지로 루트 폴더의 index.html에 다시 작성됩니다.