gpt4 book ai didi

apache - .htaccess 规则,将不存在的旧地址重定向到新地址

转载 作者:行者123 更新时间:2023-12-01 15:52:36 26 4
gpt4 key购买 nike

这是我在博客上的旧帖子地址的查看方式:

subdomain.domain.com/view/1310/article-title/

我希望当来自 Google 的访问者使用这样的地址时,能够像这样重定向:

http://www.domain.com/article-title/

我需要指定有关旧/第一个链接的一些细节:

  • subdomain,是一个变量
  • view,是固定词
  • 1230,可以是任意数字/id

我试过这个:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} subdomain.domain.com $ [NC]
RewriteRule ^/view/(*)/(.*)$ http://www.domain.com/$2 [R=301,L]

导致 500 大错误。

网站正在使用 WordPress cms。

提前致谢!


在 Michael Berkowski 的回答之后添加。我目前的 wp 规则是:

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

最佳答案

500 错误是 (*) 的结果,其中 *(零个或多个)前面没有任何内容作为限定符。您可能打算使用 (.*) 但您真正需要的是 [^/]+ 来获取下一个 / 之前的所有字符>:

Options +FollowSymLinks
RewriteEngine On
# Slight modification of the subdomain - must escape .
RewriteCond %{HTTP_HOST} subdomain\.domain\.com$ [NC]
# Note this may need to be ^view/ instead of ^/view
# In htaccess context the leading / should probably not be there
RewriteRule ^/view/([^/]+)/(.*)$ http://www.domain.com/$2 [R=301,L]

以上内容专门针对 subdomain.domain.com,但由于您指定它是可变的,因此使用它来获取除 www.domain.com 之外的所有子域:

Options +FollowSymLinks
RewriteEngine On
# Matches all subdomains except www.
RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteRule ^/view/([^/]+)/(.*)$ http://www.domain.com/$2 [R=301,L]

如果做不到这一点,请发布您可能拥有的任何其他重写规则(既然您提到这是 WordPress,我希望您还有其他规则),因为订单可能很重要。

更新合并 WordPress 规则:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

# The new rules handle the subdomain redirect...
RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteRule ^view/([^/]+)/(.*)$ http://www.domain.com/$2 [R=301,L]

# After which WordPress does its internal redirection
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

关于apache - .htaccess 规则,将不存在的旧地址重定向到新地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15033166/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com