对于我当前的项目,我必须重定向301一些链接,但当你输入一些额外的get参数时,参数需要在新网址上加后缀。
示例:
旧: / language / nl / article-1 /?test = 123
新: /语言/ NL / FA1-artcile-1 /?测试= 123
所以我使用以下代码:(在我的开发环境中工作正常)
RewriteEngine On
Options +FollowSymLinks
RewriteBase /language/nl
RewriteRule /artcile-1/* /language/nl/fa1-artcile-1/$1 [R=301,L]
但是一旦在我的生产环境中它不起作用,它仍然会重定向到新的URL,但是get参数不会附加在新的URL上。
编辑:它会重定向,但不会附加参数。
编辑2:完全填充
# 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
重写规则出现在wordpress部分之前,我有大约30个。
有什么建议吗?
答案 0 :(得分:1)
有这样的话:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule ^language/nl/article-1/?$ /language/nl/fa1-artcile-1/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
答案 1 :(得分:0)
您需要附加query string:
# 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,QSA]
</IfModule>
# END WordPress
答案 2 :(得分:0)
这里的其他答案可能也是正确的。但就我的情况而言,他们不会工作。
它正在运行的环境是一个MS Azure环境,所以我需要一个web.config文件而不是.htaccess文件(但是,它适用于某些部分)。
感谢所有快速帮助和思考!