.htaccess文件中的301重定向不工作

.htaccess文件中的301重定向不工作,.htaccess,redirect,.htaccess,Redirect,我试图通过.htaccess文件重定向内部链接,但它不起作用。下面是我的.htaccess文件“#重定向” 如何更好地构造代码以允许工作重定向链接 # Use PHP 5.3 AddType application/x-httpd-php53 .php # Redirect www to non-www RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^(.*)$ h

我试图通过.htaccess文件重定向内部链接,但它不起作用。下面是我的.htaccess文件“#重定向”

如何更好地构造代码以允许工作重定向链接

# Use PHP 5.3

AddType application/x-httpd-php53 .php 

# Redirect www to non-www

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

# BEGIN WordPress

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# Redirects

Redirect 301 /oldpage http://domain/newpage

# Start Hotlink Protection

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?domain.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L]

# EXPIRES CACHING

<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType text/js "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 2 days"
</IfModule>
#使用PHP5.3
AddType应用程序/x-httpd-php53.php
#将www重定向到非www
重新启动发动机
重写基/
重写条件%{HTTP_HOST}^www\.(.*)$[NC]
重写规则^(.*)$http://%1/$1[R=301,L]
#开始WordPress
重新启动发动机
重写基/
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/index.php[L]
#重定向
重定向301/旧页http://domain/newpage
#启动热链接保护
重新启动发动机
重写cond%{HTTP_REFERER}^$
重写cond%{HTTP_REFERER}^http(s)?:/(www\)?domain.com[NC]
重写规则\(jpg | jpeg | png | gif)$-[NC,F,L]
#过期缓存
过期于
过期按类型映像/jpg“访问1年”
过期按类型图像/jpeg“访问1年”
ExpiresByType image/gif“访问1年”
过期按类型图像/png“访问1年”
ExpiresByType文本/css“访问1个月”
ExpiresByType文本/js“访问1个月”
过期按类型应用程序/pdf“访问1个月”
ExpiresByType文本/x-javascript“访问1个月”
过期按类型应用程序/x-shockwave-flash“访问1个月”
过期按类型图像/x图标“访问1年”
ExpiresDefault“访问2天”

您的重定向语句是mod_alias的一部分,但您拥有的所有其他重写规则都属于mod_rewrite。这两个模块在处理管道的不同点处理请求,因此如果您同时使用它们,有时它们将无法很好地相互配合。在这种情况下,您应该使用mod_rewrite,并将重定向规则置于wordpress路由规则之前。这是因为wordpress将路由您实际想要重定向的内容

因此:

#使用PHP5.3
AddType应用程序/x-httpd-php53.php
#将www重定向到非www
重新启动发动机
重写基/
重写条件%{HTTP_HOST}^www\.(.*)$[NC]
重写规则^(.*)$http://%1/$1[R=301,L]
####在此处插入重定向
#重定向
重写规则^oldpage(.*)$http://domain/newpage$1[L,R=301]
#开始WordPress
重新启动发动机
重写基/
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/index.php[L]
###从这里删除重定向
#启动热链接保护
重新启动发动机
重写cond%{HTTP_REFERER}^$
重写cond%{HTTP_REFERER}^http(s)?:/(www\)?domain.com[NC]
重写规则\(jpg | jpeg | png | gif)$-[NC,F,L]

然后是htaccess文件的其余部分

到底什么不起作用,此规则
重定向301/oldpagehttp://domain/newpage
?确保:(1)mod_alias已启用。(2) 您的浏览器没有“记住”以前的重定向(尝试使重定向生效时使用临时重定向,只有在一切正常时才将其更改为301(永久!)(3)确保按照中的指定使用重定向
# Use PHP 5.3

AddType application/x-httpd-php53 .php 

# Redirect www to non-www

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

#### INSERT THE REDIRECTS HERE
# Redirects

RewriteRule ^oldpage(.*)$ http://domain/newpage$1 [L,R=301]


# BEGIN WordPress

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

### Remove the redirect from here

# Start Hotlink Protection

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?domain.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L]