htaccess 다시 쓰기 문제

htaccess 다시 쓰기 문제

저는 WordPress에 발생한 문제를 해결하려고 노력해 왔습니다. WordPress.SE 웹사이트의 조언에 따라 문제를 해결하기 위해 다시 쓰기 규칙을 사용해 보았지만 .htaccess어떤 이유로 규칙이 작동하도록 할 수 없었습니다.

가독성을 위해 URL을 단축했습니다. 내 WordPress 사이트는 에 있습니다 /r.info/blogs/th. 친구가 두 번째 설치 없이 동일한 사이트에서 블로그를 작성할 수 있도록 네트워킹을 설치했습니다. 안타깝게도 그의 웹사이트 섹션에 대한 새 URL은 /r.info/blogs/th/st제가 원하는 것이 아닙니다. 나는 그것을 선호합니다 /r.info/blogs/st.

데이터 손실 없이 웹사이트 자체를 옮기는 것은 매우 어려운 일인 것 같아서 WP.SE를 통해 살펴보았습니다.

-bash-3.2$ cat .htaccess
#RewriteEngine On    # Turn on the rewriting engine
#RewriteRule    /blogs/st/(.*)$    /blogs/th/st/$1    [NC]

# BEGIN wtwp_cache
<IfModule mod_mime.c>

        # Text
        AddType text/css .css
        AddType application/x-javascript .js
        AddType text/html .html .htm
        AddType text/richtext .rtf .rtx
        AddType text/plain .txt
        AddType text/xml .xml

        # Image
        AddType image/gif .gif
        AddType image/x-icon .ico
        AddType image/jpeg .jpg .jpeg .jpe
        AddType image/png .png
        AddType image/svg+xml .svg .svgz

        # Video
        AddType video/asf .asf .asx .wax .wmv .wmx
        AddType video/avi .avi
        AddType video/quicktime .mov .qt
        AddType video/mp4 .mp4 .m4v
        AddType video/mpeg .mpeg .mpg .mpe

        # PDF
        AddType application/pdf .pdf

        # Flash
        AddType application/x-shockwave-flash .swf

        # Font
        AddType application/x-font-ttf .ttf .ttc
        AddType application/vnd.ms-fontobject .eot
        AddType application/x-font-otf .otf

        # Audio
        AddType audio/mpeg .mp3 .m4a
        AddType audio/ogg .ogg
        AddType audio/wav .wav
        AddType audio/wma .wma

        # Zip/Tar
        AddType application/x-tar .tar
        AddType application/x-gzip .gz .gzip
        AddType application/zip .zip
</IfModule>

<IfModule mod_expires.c>
        ExpiresActive On

        # Text
        ExpiresByType text/css A31536000
        ExpiresByType application/x-javascript A31536000
        ExpiresByType text/html A3600
        ExpiresByType text/richtext A3600
        ExpiresByType text/plain A3600
        ExpiresByType text/xml A3600

        # Image
        ExpiresByType image/gif A31536000
        ExpiresByType image/x-icon A31536000
        ExpiresByType image/jpeg A31536000
        ExpiresByType image/png A31536000
        ExpiresByType image/svg+xml A31536000

        # Video
        ExpiresByType video/asf A31536000
        ExpiresByType video/avi A31536000
        ExpiresByType video/quicktime A31536000
        ExpiresByType video/mp4 A31536000
        ExpiresByType video/mpeg A31536000

        # PDF
        ExpiresByType application/pdf A31536000

        # Flash
        ExpiresByType application/x-shockwave-flash A31536000

        # Font
        ExpiresByType application/x-font-ttf A31536000
        ExpiresByType application/vnd.ms-fontobject A31536000
        ExpiresByType application/x-font-otf A31536000

        # Audio
        ExpiresByType audio/mpeg A31536000
        ExpiresByType audio/ogg A31536000
        ExpiresByType audio/wav A31536000
        ExpiresByType audio/wma A31536000

        # Zip/Tar
        ExpiresByType application/x-tar A31536000
        ExpiresByType application/x-gzip A31536000
        ExpiresByType application/zip A31536000
</IfModule>
<FilesMatch "\.(?i:css|js|htm|html|rtf|rtx|txt|xml|gif|ico|jpg|jpeg|jpe|png|svg|svgz|asf|asx|wax|wmv|wmx|avi|mov|qt|mp4|m4v|mpeg|mpg|mpe|pdf|swf|ttf|ttc|eot|otf|mp3|m4a|ogg|wav|wma|tar|gz|gzip|zip)$">
        <IfModule mod_headers.c>
                Header set Pragma "public"
                Header append Cache-Control "public, must-revalidate, proxy-revalidate"
                Header unset ETag
        </IfModule>
</FilesMatch>
<FilesMatch "\.(?i:css|js|gif|ico|jpg|jpeg|jpe|png|pdf|swf|ttf|ttc|eot|otf)$">
    <IfModule mod_headers.c>
                Header unset Set-Cookie
        </IfModule>
</FilesMatch>
# END wtwp_cache

# BEGIN wtwp_security
<IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteBase /blogs/th/st/
        RewriteRule ^wp-admin/includes/ - [F,L]
        RewriteRule !^wp-includes/ - [S=3]
        RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
        RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
        RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>
<Files "wp-config.php">
        Order allow,deny
        Deny from all
</Files>
Options -Indexes
# END wtwp_security

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blogs/th/
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
</IfModule>

# END WordPress

RewriteRule ^r.info/blogs/st/$ r.info/blogs/th/st/파일 상단에 간단한 내용을 포함 시켜 보았습니다 (온라인 엔진도 있습니다).

나는 또한 WP.SE의 제안을 바탕으로 시도해 보았습니다.

RewriteCond %{REQUEST_URI} "/th/st/"
RewriteRule (.*) $1 [L]

그러나 나는 그 규칙이 실제로 무엇을 하는지 완전히 이해하지 못한다고 가정합니다. 위의 내용을 사용할 때 500 오류가 발생합니다.

답변1

다음 재작성 규칙을 사용할 수 있습니다.

RewriteRule r.info\/blogs\/st\/?(.*)$ r.info/blogs/th/st/$1 [L]

[L]htaccess가 트리거되면 이 규칙에 도달하지 않으므로 이 규칙 앞에 트리거 옵션이 있는 규칙이 없는지 확인하십시오 .

관련 정보