Wordpress Rewrite 또는 .htaccess를 통한 URL 개서
편집 8로 이동하여 이 문제를 해결한 방법을 확인하십시오.
를 들어 블로그가 www.animals.com
디렉토리에.PHP 파일은 다음과 같습니다.www.animals.com/wp-content/themes/mytheme/db.php
그에, 에 「Wordpress」를 표시하는 db.php
www.animals.com/database
.
사자에 '사자'라고 돼요.www.animals.com/database/?animal=lion
(그렇게 해서 PHP를 작성하기로 결정했기 때문에 $_GET['animal']의 값을 쿼리에 삽입하고 PDO 등을 사용합니다).
★★★★★★★★★★★★★www.animals.com/database/?animal=lion
as ~하듯이www.animals.com/lion
.
.htaccess 또는 Wordpress Rewrite 중 어느 쪽을 사용해야 합니까?.htaccess를 Wordpress 폴더 루트(wp-config 사용)에 배치해야 합니다.php와 그 파일들) 또는 내 테마 디렉토리에 있습니까?
The one from the root has 뿌리에서 내려온 게RewriteBase /
기본적으로 단어에서 나오는 것들이죠.Wordpress에서 기본 정보를 제공합니다.내가 원하는 것을 이루기 위해 무엇을 써야 하나요?내가 원하는 것을 이루려면 무엇을 써야 할까요?기존 코드를 작성해야 하나요?기존 코드 앞이나 뒤에 넣어야 하나요?
편집: 이것은 저의 public_html.htaccess 입니다.이것이 제가 정말 하고 싶은 일입니다.웹사이트가 있습니다.www.domain.com
이 '이러다'를http://www.domain.com/dios/?dios=agni
type니 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★」www.domain.com/dioses/agni
은 PHP에 있습니다.www.domain.com/wp-content/themes/smitespain/dios.php
않는다x_x
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^dioses/(\w*)$ dios/?dios=$1 [NC,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
EDIT2: 멀티사이트(EDIT4 체크)를 사용하고 있습니다.다시 말씀드리지만 /database/ /dios/ 및 /dioses/는 제가 작성한 실제 폴더가 아닙니다.Wordpress에서 작성한 페이지의 이름입니다.여기서 중요한 것은 변수 $_GET['dios']가 설정되어 있지만 파일(dios.dios) =/을 로드하지 않는다는 것을 의미하는 탭 제목:S에 god 이름이 표시됩니다.
EDIT3: 구체적으로 domain.com/dios/?dios=agni에 액세스해야 합니다.이것은 PHP 파일(dios.dios)이 워드프레스에서 get_dios()를 로드할 수 있는 URL이기 때문에 직접 파일에 액세스할 수 없기 때문입니다.
EDIT4: 멀티사이트를 삭제하기로 했습니다.
EDIT5: Wordpress 페이지는 다음과 같습니다.domain.com/dioses/
★★★★★★에(www.domain.com/wp-content/themes/smitespain/dioses.php)
domain.com/dios/?dios=thor
★★★★★★에(www.domain.com/wp-content/themes/smitespain/dios.php)
EDIT6: 단어 프레스 코덱스에서 뭔가를 읽고 있었는데..그리고 깨달았어요 만약 내가 그곳에 가고 싶다면domain.com/dioses
할 수 것은 '접속하다'입니다.domain.com/index.php?pagename=dioses
★★★★★★★★★★★★★★★★★」domain.com/?pagename=dioses
이걸 그 the the 사이에 넣었어요.Rewritebase /
그리고 다음 규칙:RewriteRule example/test ?pagename=dioses
★★★★★★★★★★★★★★★★★」domain.com/example/test
로 리다이렉트 합니다.domain.com/dioses
, 주소 도 변경됩니다
이거를RewriteRule example/test ?pagename=dios&dios=thor
'?'?dios='가 '합니다.
EDIT 7 : 워드프레스 리라이트를 사용하기 시작했고, 이것을 테마 기능에 추가했습니다.php:
function my_rewrite_rules() {
add_rewrite_rule(
'blah',
'index.php?pagename=dios&dios=agni',
'top'
);
}
add_action( 'init', 'my_rewrite_rules' );
그리고 또...dios=agni를 사용하지 않고 페이지 dios를 로드합니다.
EDIT8: 드디어 작동하게 되었습니다=)
먼저 할 가가 the the the the the the the the the the the the the, the the the the the the??dios=XXXX
는 더 할 수 .$_GET['dios']
'아,아,아,아,아,아,아,아,아,아,아,아,아,아,아,아,아,아,아,아,아,아.$wp_query->query_vars['dios']
마마 、 ppphph.
function add_query_vars($new_var) {
$new_var[] = "dios";
return $new_var;
}
add_filter('query_vars', 'add_query_vars');
function add_rewrite_rules($rules) {
$new_rules = array('([^/]+)' => 'index.php?pagename=dios&dios=$matches[1]');
$rules = $new_rules + $rules;
return $rules;
}
add_filter('rewrite_rules_array', 'add_rewrite_rules');
확인하겠습니다$wp_query->query_vars['dios']
있다
합니다.
WordPress를 건드리지 않고 해결할 수 있는 다른 방법이 있습니다.
.htaccess에 추가
RewriteRule ^lion /indexw.php?pagename=db&dios=$1 [L,E=URI:/detail/]
파일 인덱스를 만듭니다.php:
<?php $_SERVER["REQUEST_URI"] = $_SERVER["REDIRECT_URI"]; include("index.php");
구조? mod_uri는 E=URI:value 인수에 지정된 대로 REDIRECT_URI를 설정합니다.인덱스를 설정합니다.php는 REQUEST_URI를 올바른 값으로 덮어씁니다(Ravi Thaplial 덕분에 이에 대한 통찰력을 얻을 수 있었습니다).
는 WordPress에 모든 되지 않은 항목에 합니다./index.php
에, 여러분은 그것들을 ', 보다, 보다, 보다, 보다, 보다로 바꾸려고 합니다.?animal=unidentified
따라서 동물 키워드 목록이 확정되지 않는 한 제안된 솔루션은 WordPress를 망칠 수도 있습니다.
10마리 정도의 동물을 가지고 있다면 아래와 같이 .htaccess에 추가할 수 있습니다(루트 / )
RewriteEngine on
RewriteBase /
RewriteRule ^(lion|leopard|tiger|dog|cat)/?$ database/?animal=$1 [NC,L]
# WordPress rules come here
40세 이상 동물의 경우, 동물에 대한 디렉토리 접두사가 있어야 합니다(존재하지 않아도 됨).
RewriteRule ^a/(.+?)/?$ database/?animal=$1 [NC,L]
하면 것이든 됩니다./a/critter
로로 합니다.database/?animal=critter
htaccess를 사용합니다., 「」의 . 를 변경하지 않은 는, 의 룰을 공존시킬 수도 있습니다./panther
할 수 있어요./a/panther
.
★★★★★★
만, 이 해, PHP에 하는 합니다.index.php
작동 은 다음과 . 어떤 도 mutiquite와 왜냐하면, 개서 내용에 일치하는 것이 없기 때문입니다.index.php
코드의 WordPress php wordhp word word word 。깊은 곳에서 코드는 조건 합니다(「REQUEST_URI」)./dios
「」 「」 「」 「」)에 합니다.dios.php
를 참조해 주세요.
htaccess 에 대한 . 시/dioses/agni
칠 수 있다index.php
( [ L ] request request 、 REQUEST _ URI 、 REQUEST _ URI ( / dioses / agni ) 。따라서 리다이렉션은 실패합니다.
RewriteEngine On
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^www\.animals\.com/lion$ /www.animals.com/database/?animal=lion [R=301,NE,NC,L]
그냥 이 코드를 사용해.그것이 효과가 있기를 바랍니다.
을 호출해도add_filter('rewrite_rules_array', function() {})
, , , , , , , 호출하지 .add_rewrite_rule()
'rewrite_rules_array'
프런트엔드 웹 사이트 페이지를 열 때 트리거되지 않았기 때문에 다시 쓰기가 생성되지 않았습니다.
해결책은 admin 영역으로 이동하여 Settings -> Permalinks 페이지를 여는 것입니다.다시 쓰고 싶을 때마다 그렇게 해야 해요.
vanilla Wordpress가 그렇게 동작하는지는 모르겠지만, 아마 플러그인/테마가 설치되어 있기 때문일 것입니다.
언급URL : https://stackoverflow.com/questions/16664579/url-rewriting-via-wordpress-rewrite-or-htaccess
'bestsource' 카테고리의 다른 글
woocommerce 탭을 제거하는 방법 (0) | 2023.04.04 |
---|---|
Java에서 http post 본문에 json을 추가하는 방법 (0) | 2023.04.04 |
$wpdb-> 삽입이 작동하지 않습니다.오류 메시지 없음 (0) | 2023.04.04 |
Symfony 2.0 AJAX 어플리케이션에서 JSON으로 인코딩하는 방법 (0) | 2023.04.04 |
Wordpress: 한 페이지의 내용을 다른 페이지에 포함 (0) | 2023.04.04 |