저는 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가 트리거되면 이 규칙에 도달하지 않으므로 이 규칙 앞에 트리거 옵션이 있는 규칙이 없는지 확인하십시오 .