htaccess에서의 Wordpress 및 CI 개서 규칙
.com.examplecom WordPress에 했습니다., CodeIgniter에 .ci
here(폴더)example.com/ci/
,ci
register
는, 의 으로, 동작 은, 「CI」 의 URL 입니다.example.com/ci/register
. https "URL" https:// "URL"로
URL이 .example.com/hotel
,hotel
WordPress admin 。정상적으로 동작합니다.
을 CI처럼 .example.com/hotel/ci/register
이 'URL'처럼 하면 될 것 같습니다example.com/hotel/ci/register
는 ''를 추가하다.htaccess
의 경우example.com/hotel/ci/register
은 나에게 보여 주고 .404 error
, 그럼 이제 제가 에서 다음과 을 해봤습니다.routes.php
filename을 클릭합니다.
$route['default_controller'] = 'register';
$route['404_override'] = 'register';
이 "URL"example.com/hotel/ci/register
동작하고 있습니다만, 이것은 올바른 방법이 아닙니다.다음으로 컨트롤러가 많아지면 동작하지 않습니다.
주의: 생성할 수 없습니다.hotel
WordPress 。「 」를 hotel
WordPress URL example.com/hotel/ 입니다.가 WordPress로 .hotel
그래서 안 만들어도 요.hotel
example.com=myurl.com.example.com=myurl.com 를 해 주세요.
나는 다른 좋은 해결책을 찾아야 해.조언이나 안내가 있으면 대단히 감사하겠습니다.
press하다의 입니다.htaccess
:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^/?hotel/ci/register(/.*)?$ /ci/$1 [L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
은 저의 입니다.htaccess
:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
</IfModule>
미흥로운문! Wordpress code Codeigniter code Docker를 만들었습니다.hotel
및 WP 페이지Register
컨트롤러와 뷰를 CI로 표시하고 테스트를 받았습니다.이 일에 너무 오랜 시간을 들였지만
★★★★★★★★★★★★★★★★★★★★★★★★★★★」.htaccess
@처럼 @tobiv는 @tobiv와 @tobiv 사이에 도 넣지 BEGIN/END WordPress
WP 업데이트에 의해 영향을 받을 수 있기 때문에 코멘트를 입력합니다.리다이렉트는 표준 WP 규칙보다 우선해야 하므로 파일 상단에 추가합니다.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^hotel/ci/register /ci/register [L]
</IfModule>
# BEGIN WordPress
# ... These are the default, unchnaged WP rules
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
<IfModule mod_rewrite.c>
★★★★★★★★★★★★★★★★★」RewriteEngine On
복제되어 있어 복잡해 보이지만 새로운 규칙이 먼저 실행되어야 하기 때문에 WP 규칙보다 먼저 요청을 처리할 수 있습니다.
는 변경할 .htaccess
일,,, 기기기있있있있 됩됩됩됩됩됩됩은 Codeigniter인 Codeigniter에 합니다.ci/.htaccess
:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
에서는, 「 」https://example.com/hotel/ci/register
코드 시그니터 404입니다.네이블로 되어 (「」를 참조).config/config.php
알 수
ERROR - 2017-11-14 17:57:20 --> 404 Page Not Found: Hotel/ci
그리고 여기 문제의 근본이 있습니다.초기 리다이렉트는 내부 리다이렉트(브라우저에 표시되는 URL은 변경되지 않음)이므로 처리를 위해 수신되는 URI 코드 시그니터는 브라우저 주소 표시줄에 계속 표시됩니다.hotel/ci/register
코드 시그니터는 다음과 같은 두 가지 방법으로 요청을 처리하려고 합니다.
를 찾습니다.
application/config/routes.php
''를 .
application/controllers/Hotel.php
라고 하는ci
;
.Hotel
이러한 요구를 처리하는 방법을 설명하는 루트가 없기 때문에 Boom 404가 됩니다.
간단한 해결책 중 하나는 이 요구를 처리할 루트를 작성하는 것입니다.
$route['hotel/ci/register'] = 'register/index';
이제 ★★★★★★★★★★★★★★★★★.https://example.com/hotel/ci/register
가 있다
주의:
를 「」로 한다.
register
)$route['default_controller'] = 'register';
는 )을 뜻합니다.https://example.com/ci/
레지스터도 표시됩니다.네가 그걸 원하는지 모르겠어.이 URL과 같은 할 수 .https://example.com/hotel/ci/register
404번?해 주세요.
$route['404_override'] = 'register';
루트CI
base_url
는 이 문제와 관련이 없습니다.하다, 하다, 하다, 확확확 필필다다 만있 만있다, 어느쪽인가를 할 수 .http://example.com/ci/
★★★★★★★★★★★★★★★★★」http://example.com/hotel/ci/
맞을 것 같아요에서 이 인지 잘 .
.htaccess
을 사용하다RewriteCond $1 !^(index\.php|resources|robots\.txt)
기존 기본 조건이 디스크에 있는 파일 및 디렉토리를 이미 건너뜁니다.그게 뭐냐면
!-f
★★★★★★★★★★★★★★★★★」!-d
조건은 "요청된 패턴이 디스크의 파일 또는 디렉토리와 일치하지 않으면 리디렉션"을 의미합니다.「 」가
robots.txt
파일(「」의 파일)ci/
dir하면 dir)를 요청하게 .https://example.com/ci/robots.txt
, . . . . . . . .!-f
즉, 요구가 처리됩니다.또, 「」, 「」, 「」, 「」, 「」, 「」, 「」, 「」, 「재기입」은 행해지지 않습니다.robots.txt
이치노일일도 입니다.index.php
라고 하는ci/resources
누가 부탁하다.https://example.com/ci/resources
, . . . . . . . .!-d
조건은 실패하고 리다이렉트는 건너뛰며 요청은 성공합니다.는 네가 어떻게 잘 모르겠어.
resources
그 상태를 완전히 제거할 수 있을지도 모릅니다.Codeigniter 없는 (「Codeigniter URL」외)
https://example.com/hotel/ci/register
이필요없다는 것을 . CI를 수 . CI를 사용하다.htaccess
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★.RewriteRule
"CHANGE: " "CHANGE: "CHANGE:RewriteRule ^hotel/ci/register /ci/index.php/register [L]
CI CI를 합니다.
.htacces
올바른 방향으로 가고 있다고 생각합니다.이렇게 해보세요.
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^/hotel/ci(/.*)?$ /ci/$1 [L] # remove the register part
# so that it would be handled by CI
# also remove the "?" in front of hotel
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
CI htaccess를 그대로 유지합니다.
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
</IfModule>
합니다.config.php
로의 이행(URL)
$config['base_url'] = "http://example.com/hotel/ci/";
에 대한 될 는 생각하지 않지만, 한다면, 저는 이 을 사용할 입니다.routes
코드 예를 참조해 주세요.
$route['(:any)/ci/register'] = "register";
?(:any)
는 첫 내의 하며, 그 후할 수 있습니다.i defined uri 、 을 、 을 、 을을을 URL 。ci/register
이렇게도 할 수 있어요.
$route['(:any)/register'] = "here_you_can_add_your_controller/function";
url을 이렇게 누르면 됩니다.
http://www.example.com/any_word_you_want/register
꼭 해야 돼요.
echo
브라우저에 표시됩니다.
기본 URL의 호텔 단어를 @am05mhz의 답변으로 정의할 수도 있지만, 향후 URL에 2개의 단어가 추가될 수 있기 때문에 좋은 생각은 아닙니다.
주의: 위의 코드 예는 다음 경우에만 작동합니다..htaccess
할 수 합니다..htaccess
당신을 위한 일이에요.라우팅에 대한 자세한 내용은 코드 시그니터 URI 라우팅 설명서를 참조하십시오.
htaccess [P]
대신 플래그를 지정합니다.
이 "(타깃)"으로 합니다.http://
그렇지 않으면 대체 문자열이 내부 파일 경로로 처리됩니다.
아래 코드를 확인합니다.
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^/?hotel/ci/(.*)?$ http://example.com/ci/$1 [P]
# If you want rewrite any URI as long it has */ci/* in it.
# Use the following rule instead.
# RewriteRule ^(.*)/ci/(.*)?$ http://example.com/ci/$1 [P]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
또한 CI의 기본 URL을 업데이트할 필요가 없습니다.빈 문자열이면 됩니다.
$config['base_url'] = '';
도움이 됐으면 좋겠다.
언급URL : https://stackoverflow.com/questions/46787656/wordpress-and-ci-rewrite-rule-in-htaccess
'programing' 카테고리의 다른 글
WooCommerce API를 사용하여 국가/주 목록 가져오기 (0) | 2023.02.26 |
---|---|
변수를 사용하여 bash 스크립트에 JSON을 직접 저장하시겠습니까? (0) | 2023.02.26 |
TypeError: 인터페이스 HTMLInputElement를 구현하지 않은 개체에서 'stepUp'이 호출되었습니다. (0) | 2023.02.26 |
React의 useState() 훅을 사용하여 컴포넌트 간에 상태를 공유할 수 있습니까? (0) | 2023.02.26 |
jQuery를 사용하여 ajax 요청을 큐잉합니다.큐() (0) | 2023.02.26 |