.htaccess & WordPress: RewriteRule에서 폴더 제외
WordPress에 .htaccess 파일이 있습니다./public_html/(web root)에 있습니다.폴더(csNewsAd)를 개서 엔진에서 제외해야 합니다.여기 SO에서 비슷한 질문을 하나 더 해서 시도해 봤지만 전혀 효과가 없었습니다.
AddHandler x-httpd-php5 .php
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^/csNewsAd($|/) - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
좋은 의견이라도 있나?
기타 데이터
/csNewsAd에는 패스워드 보호를 위한 다른 .htaccess가 있습니다.
AuthName "Clasificados"
AuthType "basic"
AuthUserFile /home/ig000192/public_html/csNewsAd/.passwd
Require valid-user
RewriteCond %{REQUEST_URI} !^/(csNewsAd|csNewsAd/.*)$
대신
RewriteRule ^/csNewsAd($|/) - [L]
루트의 .htaccess 파일에 다음 행을 배치합니다.
ErrorDocument 401 default
똑같은 문제가 있었는데 이게 나한테 효과가 있었어.리다이렉트가 기능하지 않는 것은 문제가 아닙니다.문제는 401(Authorization Required) 오류가 정의되어 있기 때문에 "팝업"이 표시되지 않는다는 것입니다.
이것은 1위 구글 결과이며 오답입니다.
정답은 워드프레스 지시 전에 이것을 추가하는 것입니다.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^/subdirectoryname1/(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^/subdirectoryname2/(.*)$ [OR]
RewriteRule ^.*$ - [L]
</IfModule>
같은 문제를 안고 있었는데, 이 문제에 대한 해답을 이쪽에서 찾았습니다.http://kb.siteground.com/article/How_to_exclude_a_folder_from_Wordpress_permalinks.html
·사이트에서
WordPress 재작성 규칙에서 하위 폴더를 제외하려면 .htaccess 파일을 편집하고 아래 굵은 줄을 변경해야 합니다.
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# RewriteRule . /index.php [L] # Original line
RewriteRule ./ /index.php [L] # New line
</IfModule>
# END WordPress
.htaccess는 아래의 모든 디렉토리에 영향을 미치기 때문에 csNewsAd에 원하는 개서 지시와 함께 .htaccess를 넣으면 루트 파일보다 우선됩니다.
하지 않고 됩니다.htaccess 파일에서 mod_rewrite를 사용하는 경우 패턴에서 로컬 경로 접두사를 사용하지 않고 URL 경로를 지정하기만 하면 됩니다.가 , ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★」/의 루트(문서의 루트)에 /
RewriteRule ^csNewsAd($|/) - [L]
처음 레일즈랑 같이 시작했어요.레일 맨 위에 .htaccess가 다음 두 줄 있습니다.
# RewriteCond %{REQUEST_URI} ^/notrails.*
# RewriteRule .* – [L]
내가 마침내 그들의 예를 따르자 효과가 있었다.
이미지, javascript, stylesheet, css, images-global, js-global 등을 제외하고 싶었기 때문에 위의 내용을 로 변경했습니다.
RewriteCond %{REQUEST_URI} ^(images|javascripts|stylesheets|css|images-globa|js-global|js).*
RewriteRule .* – [L]
그리고 내가 원하는 방식으로 작동했어
javascript, 스타일시트, 이미지 폴더가 너무 많다는 것은 말하지 않겠습니다.
하지만 이렇게 하면 "오류" 파일의 고통이 줄어듭니다.존재하지 않는 이미지 파일을 추가한 경우 디스패치가 처리할 필요가 없습니다.
다음은 GoDaddy WordPress 사이트에 대한 저의 해결책입니다.인스톨에 web.config 파일이 있기 때문에, 개서 룰을 추가했습니다.AJAX 호출에 대해 MVC.net 애플리케이션(가상 디렉토리)을 실행할 수 있는 /ApiData 경로가 필요했습니다.
<system.webServer>
<!-- ... -->
<rewrite>
<rules>
<rule name="apidata" stopProcessing="true">
<match url="apidata"/>
</rule>
<rule name="wordpress" patternSyntax="Wildcard">
<match url="*"/>
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
</conditions>
<action type="Rewrite" url="index.php"/>
</rule>
</rules>
</rewrite>
</system.webServer>
나는 내 사이트 두 곳에서도 비슷한 문제를 겪고 있었다.여기서 읽은 코멘트는 효과가 없었지만, 드디어 이 코드를 사용할 수 있게 되었습니다.
<IfModule mod_rewrite.c>
RewriteEngine on
# stuff to let through (ignore)
RewriteCond %{REQUEST_URI} "/folder1/"
RewriteRule (.*) $1 [L]
https://www.drupal.org/node/30334에서 입수
난 고다디 진행자가 있는데 이 문제로 죽을 뻔했어public_html의 .htaccess 옵션과 패스워드로 보호된 서브 디렉토리의 경합으로 같은 문제가 몇 번이고 반복되었습니다.
.htaccess 파일을 백만 가지 정도 수정해 봤더니 Nothind가 이 문제를 해결했습니다.완전성과 명확성을 위해 셋업과 솔루션을 소개합니다.(알려주세요)계정은 어쨌든 가치가 있기 때문에 큰 문제는 없습니다.)
만약 그것이 다른 사람의 대답의 조합처럼 보인다면, 그것은 바로 그 답이기 때문이다.그 모든 게 먹혀들었어.
디렉토리 구조:
-otherfiles
---public_html
---.htaccess
-----subfolder
---.htaccess
하위 폴더 .htaccess에는 다음과 같이 보호 기능의 암호가 있습니다.
AuthType Basic
AuthName "Attendance"
AuthUserFile "/home/user/.htpasswds/public_html/attendance/passwd"
require valid-user
public_html.htaccess는 원래 이 기능을 가지고 있었지만 동작하지 않았습니다(모든 것을 삼켜 리다이렉트하고 FatFreeFramework 또는 CodeIgniter가 처리하도록 했습니다).
RewriteEngine On
RewriteCond $1 !^(index.php|resources|subfolder|robots.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
이 문제를 해결하기 위해 public_html.htaccess 파일에 두 줄을 추가했습니다.따라서 장소를 추측하지 않고 파일 전체를 다시 보여 줍니다.
RewriteEngine On
RewriteCond $1 !^(index.php|resources|robots.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_URI} !^/(subfolder|subfolder/.*)$
ErrorDocument 401 default
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
다음과 같이 추가할 수 있습니다.
RewriteCond %{REQUEST_URI} !^/csNewsAd
단, csNewsAd가 실제로 디렉토리(폴더)인 경우, csNewsAd는 다음 이유로 처음부터 다시 쓰여서는 안 됩니다.
RewriteCond %{REQUEST_FILENAME} !-d
당신과 그 폴더, 권리 또는 (실제로) 다른 .htaccess 사이에 아무것도 없는 것이 확실합니까?
이거 드셔보세요
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^/(gadget)/(.*) /gadget/$2 [R]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
이미 배제되어 있다고 생각합니다만, 같은 문제로 찾아뵙고 싶기 때문에, 제 경우는, 실제로 폴더에 액세스 할 수 없었던 것이 문제인 것 같습니다만, 제외는 무시되고 있었습니다.
이 행이 .htaccess 흐름에서 어디로 가는지가 중요하다는 점에 유의하십시오.
여기를 참조해 주세요.http://tanyanam.com/technology/wordpress-exclude-directory-from-url-rewrite-with-htaccess - WordPress 앞에 행이 와야 합니다.이 행은 WordPress 뒤에 표시되지 않습니다.
롭
오래된 포스트인 건 알지만 그래도 도움이 됐어요.RewriteRules의 여러 블록에 대한 추가적인 문제가 있었습니다.
##
## White listed folders
##
RewriteCond %{REQUEST_URI} !^/(phplist|phplist/.*)$
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_FILENAME} !/.well-known/*
RewriteCond %{REQUEST_FILENAME} !/storage/app/uploads/.*
RewriteCond %{REQUEST_FILENAME} !/storage/app/media/.*
...
RewriteCond %{REQUEST_FILENAME} !/modules/.*/(assets|resources)/.*
RewriteRule !^index.php index.php [L,NC]
##
## Block all PHP files, except index
##
RewriteCond %{REQUEST_URI} !^/(phplist|phplist/.*)$
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_FILENAME} \.php$
RewriteRule !^index.php index.php [L,NC]
##
## Standard routes
##
RewriteCond %{REQUEST_URI} !^/(phplist|phplist/.*)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
모든 블록 전에 내 RewriteCond를 추가해야 했어
이 단일 규칙을 사용하여 시도하십시오.D는 제외하려는 디렉토리의 이름입니다.필요에 따라 변경해 주세요.
RewriteRule ^(dashboard)($|/) – [L]
Lukasz의 이 글은 나에게 효과가 있었다.하위 디렉토리에서 Respect with React Router를 사용하고 있는데, WordPress가 다시 쓰기 전에 .htaccess 파일을 수정하기 전까지 404를 받았습니다.
3행은 다음과 같습니다.
RewriteCond %{REQUEST_URI} ^/MY-REACT-SUB-DIR/.*
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*$ /MY-REACT-SUB-DIR/index.html [L]
WordPress를 다시 쓰기 전에 완전한 .htaccess 코드의 다음 3행은 다음과 같습니다.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteCond %{REQUEST_URI} ^/MY-REACT-SUB-DIR/.*
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*$ /MY-REACT-SUB-DIR/index.html [L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Rakasz의 투고도 꼭 읽어주세요.React 앱도 수정해야 할 수 있습니다.https://lukaszzagroba.com/how-to-deploy-a-react-app-in-a-subdirectory-on-a-wordpress-site/
다음과 같은 것 같습니다.
ErrorDocument 401 기본값
.htaccess의 마지막에
정답입니다.여러 가지 솔루션을 시도했지만, 다른 브라우저(safari)에서 뇌파를 일으켜 확인한 후 캐시를 클리어하고 Chrome에서 사이트를 하드 새로고침(아마추어 실수)을 했습니다.빌어먹을 캐싱.
Mac(Chrome)에서는 페이지의 아무 곳이나 '제어'해야 합니다.그런 다음 'inspect'를 선택하면 작은 원형 화살표(새로 고침 버튼)를 '제어'할 수 있습니다. 그러면 옵션이 나타납니다. 하나는 '비운 캐시 및 하드 새로고침'입니다.정신 차리는데 아주 유용해
언급URL : https://stackoverflow.com/questions/2322559/htaccess-wordpress-exclude-folder-from-rewriterule
'programing' 카테고리의 다른 글
| Spring Boot 2로 업그레이드한 후 Object Mapper가 기본 컨스트럭터 없이 역직렬화할 수 없음 (0) | 2023.04.02 |
|---|---|
| 리액트 테스트 라이브러리를 사용하여 장치 테스트에서 작동하도록 RizeObserver를 시뮬레이션하는 방법 (0) | 2023.04.02 |
| fetch() 예기치 않은 입력 끝 (0) | 2023.04.02 |
| TypeScript - 각도:여러 줄의 문자열 (0) | 2023.04.02 |
| CSV/XLS를 JSON으로 변환하시겠습니까? (0) | 2023.04.02 |