HTAccess 301重定向无法从ASPX重定向到新的WP固定链接

时间:2013-07-30 作者:gtr1971

我对htaccess文件和重写/重定向规则很有经验,然而,这一条让我很困惑,为什么它不起作用。

NONE 以下行中的任何一行(单独使用,而不是一起使用)都有任何影响。我只是在尝试使用旧URL时得到了正常的404页面。

RewriteEngine On

RewriteRule  ^carpetcare/default.aspx$ /carpet-care/ [R=301,L]
Redirect 301 /carpetcare/default.aspx http://www.domain.com/carpet-care/
Redirect 301 /carpetcare/default.aspx /carpet-care/
以上各行均位于典型的WP 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
我有其他的重写规则可以完美地工作,所以我很困惑为什么这些简单的重定向不能做任何事情。

以下是整个htaccess:


Options +FollowSymLinks
RewriteEngine On

#RewriteRule  ^carpetcare/default.aspx$ /carpet-care/ [R=301,L]
#RedirectMatch 301 ^/carpetcare/default.aspx$ /carpet-care/
Redirect 301 ^/carpetcare/default.aspx$ /carpet-care/


# Other rewrites
RewriteRule ^carpet-care/([-A-zA-Z]+)-cleaning(.*)/$ /loc.php?city=$1&cat=1 [L]

# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress

# BEGIN wtwp_cache


    # 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



    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


    
        Header set Pragma "public"
        Header append Cache-Control "public, must-revalidate, proxy-revalidate"
        Header unset ETag
    


    
        Header unset Set-Cookie
    

# END wtwp_cache

# BEGIN wtwp_security

    RewriteEngine On
    RewriteBase /
    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]


    Order allow,deny
    Deny from all

Options -Indexes
# END wtwp_security

1 个回复
SO网友:gtr1971

我弄明白了,这有点愚蠢,但很容易出错。我最初让这个网站在一个开发域(domain.info)下运行,然后在另一个域(domain.com)下运行。我对这两个域都有FTP访问权限,似乎在使用“.info”域登录时,如果我试图故意“破坏”该站点(只是为了看看我是否真的使用了正确的htaccess),我就必须使用“.com”域登录才能访问正确的站点。我不记得这两个网站现在是否分别托管,但如果这是真的,那么我就不能通过改变“错误的”htaccess来破坏网站,对吗??

无论如何,基本重定向规则现在运行良好。

Redirect 301 /carpetcare/default.aspx /carpet-care/
我在这个问题上花了太长时间。。。啊!

结束