Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess 添加301重定向到wp站点(使用现有规则)_.htaccess - Fatal编程技术网

.htaccess 添加301重定向到wp站点(使用现有规则)

.htaccess 添加301重定向到wp站点(使用现有规则),.htaccess,.htaccess,我被要求将两个页面重定向到不同的url。它正在工作,但由于现有的WP重写规则,我在url末尾得到了一个尾随的反斜杠。我需要重定向这些页面,但对于不重定向的页面,保留WP规则不变。 以下是现有的WP规则: # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f R

我被要求将两个页面重定向到不同的url。它正在工作,但由于现有的WP重写规则,我在url末尾得到了一个尾随的反斜杠。我需要重定向这些页面,但对于不重定向的页面,保留WP规则不变。 以下是现有的WP规则:

# 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
当我这样做时,它会重定向到: 新建url.com/tour.html/ 后面的反斜杠导致了这个问题

我是一个彻头彻尾的新手。 谢谢
Matt

这是mod_alias和mod_rewrite相互干扰的情况,因为它们都是URI文件映射管道的一部分,所以一旦mod_alias做了它的事情(重定向指令)并标记要重定向的URI,mod_rewrite就会做它的事情并重写URI。因此,在URI文件映射管道的末尾,有一个301重定向,但是URI被mod_rewrite破坏了

你可以坚持使用mod_rewrite,这样wordpress规则就不会被应用了。您还需要在wordpress规则之前添加重定向,因此在开始wordpress之前添加:

RewriteEngine On
RewriteRule ^/?old_url http://new_url/about.html [L,R=301]
RewriteRule ^/?old_url2 http://new_url/tour.html [L,R=301]

Jon,这几乎完美,但是第二条规则现在重定向到“关于页面”而不是“旅游页面”。这是因为我的第二个url包含第一个吗?它是这样的:simplegoodeats应该转到simplegoodeats.com/about.html,simplegoodeats/tour应该转到simplegoodeats.com/tour.htmlld url 2被重定向到它上面的规则。任何人都知道这是为什么。还是在这里被难住了。谢谢
RewriteEngine On
RewriteRule ^/?old_url http://new_url/about.html [L,R=301]
RewriteRule ^/?old_url2 http://new_url/tour.html [L,R=301]