htaccess書き換えの問題

htaccess書き換えの問題

私はWordPressで発生した問題を解決しようとしてきました。 WordPress.SE Webサイトのアドバイスに基づいて問題を解決するために書き換えルールを試しましたが、.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がトリガーされると、このルールに到達しないため、このルールの前にトリガーオプションがあるルールがないことを確認してください。

関連情報