source

Wordpress에 URL 다시 쓰기 규칙 추가

gigabyte 2023. 2. 10. 22:00
반응형

Wordpress에 URL 다시 쓰기 규칙 추가

URL에 쿼리 문자열을 추가하는 Wordpress 플러그인을 작성했습니다. 그러나 htaccess를 수정하여 다시 작성할 수 없습니다.Wordpress가 우선하는지 확실하지 않나요?

현재 htaccess는 다음과 같습니다.

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

다시 쓰려는 URL은 다음과 같습니다.

http://domain.com/deal-info/?id=87&post_name=testdealtitle

원하는 URL:

http://domain.com/deal-info/87/testdealtitle

추가하려고 했습니다.

RewriteRule ^([^/]*)/([^/]*)$ /deal-info/?id=$1&post_name=$2 [L]

헛수고다.아이디어 감사합니다!

이 경우:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

즉, 「파일이 아니고, dir가 아닌 경우는, 모든 착신 URL 를 로 리다이렉트 합니다.

리라이터가 작동해야 하는데...이전 재작성 후에 넣지 않았다면요즉, .ht는 다음과 같이 액세스 할 수 있습니다.

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^([^/]*)/([^/]*)$ /deal-info/?id=$1&post_name=$2 [L]
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
</IfModule>

잘 되는지 알려주세요.


게다가 deal-info만을 리다이렉트 하는 경우는, 다음과 같은 조작을 실시할 필요가 있습니다(테스트되지 않습니다).

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^(/)?deal-info/([^/]*)/([^/]*)$ /deal-info/?id=$2&post_name=$3 [L]
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
</IfModule>

두 가지 힌트:


를 사용해 주세요.RewriteLogdirective: 이러한 문제를 추적하는 데 도움이 됩니다.

# Trace:
# (!) file gets big quickly, remove in prod environments:
RewriteLog "/web/logs/mywebsite.rewrite.log"
RewriteLogLevel 9
RewriteEngine On

regexp를 체크하기 위해 가장 좋아하는 도구:

http://www.quanetic.com/Regex (preg(PCRE) 대신 ereg(POSIX)를 선택하는 것을 잊지 마세요!)

질문하신 내용에 리라이트로그를 추가해 주시겠습니까?

많은 혼란 끝에 저는 여기서 답을 찾았습니다.https://wordpress.stackexchange.com/questions/5413/need-help-with-add-rewrite-rule

적절한 방법은 http://codex.wordpress.org/Rewrite_API/add_rewrite_rule 입니다.

htaccess에서 직접 할 수 있는지, 아니면 사용하던 다른 플러그인과 경합하고 있었습니다.

Olivier의 폭넓은 답변에 다시 한 번 감사드립니다!

언급URL : https://stackoverflow.com/questions/8476654/add-url-rewrite-rule-to-wordpress

반응형