我正在尝试为客户网站重写网址,但它没有按预期工作。
我无法弄清楚我做错了什么。
RewriteRule ^about/sectionreps/(.*)$ http://myclientssite.com/sectionreps/ [r=301,nc]
所以,/ sectionreps /会重定向到/ about / sectionreps /但这不是我想要的。
以下是整个文件:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^about/sectionreps/(.*)$ http://myclientssite.com/sectionreps/ [r=301,nc]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
所以我的问题是为什么url重写不会来自: http://myclientssite.com/about/sectionreps
到
答案 0 :(得分:1)
您的代码表示/about/sectionreps/*
将被重定向到(可能是其他网站)/sectionreps/
。不是相反,正如你所暗示的那样(但后来在帖子中反驳)。重定向是你要找的吗?
您的代码需要在输入URI上尾随/。这可能是/about/sectionreps
不匹配的原因(但/about/sectionreps/
应该)。
RewriteRule ^about/sectionreps(/)? /sectionreps [R=301,NC]
应该做的工作。您不需要匹配尾随的内容(.*)$
,因为您丢弃它,并且您不需要提供http:位,因为您位于同一个域中。
答案 1 :(得分:0)
尝试在wordpress代码
下添加此代码#start custom redirects
RewriteCond %{HTTP_HOST} myclientssite.com/about/sectionreps/ [NC]
RewriteRule ^(.*)$ http://myclientssite.com/$1 [L,R=301]
Redirect 301 / http://www.myclientssite.com/sectionreps/
#end custom redirects
答案 2 :(得分:0)
试试这段代码:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^about/sectionreps(/.*)?$ /sectionreps/$1 [R=301,NC,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
确保在新浏览器中进行测试。