提取重定向的网址

时间:2017-02-14 08:27:17

标签: php wordpress apache .htaccess mod-rewrite

我已经设置了一个包含食谱的网站,但是在迁移过程中,OLD的网址是我正面临问题的新网址。

https://example.com/recipes/cheesy-baked-tacos/

这是我的旧网址结构,在wordpress网站中,我需要提取网址“cheesy-baked-tacos”的最后一部分,并在我用于食谱页面的模板中处理。

现在,当我点击URL时,即使食谱页面已经设置,也会转到404页面。

我尝试过遵循htaccess规则,但没有成功

RewriteBase /
RewriteRule ^recipes/(.*)$ index.php?l=$1

先谢谢。

完整的htaccess文件看起来像这样

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^recipes/(.*)$ index.php?l=$1
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

2 个答案:

答案 0 :(得分:0)

you should check your permalink change to starts with id to without query string
dont change htacces file
you just change permalink in new server
https://example.com/recipes/cheesy-baked-tacos/
this is your old url and has permalink set without query string 

new url https://example.com/recipes/cheesy-baked-tacos/id=50 just like
thats why your code have error

答案 1 :(得分:0)

管理以使用301重定向修复此问题。这是我使用的,如果它可以帮助某人。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^recipes/(.*)$ recipe/?post_name=$1 [L,R=301,NC]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress