微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

htaccess 使用旧网址重定向问题

如何解决htaccess 使用旧网址重定向问题

我有一个PHP 制作的旧网站,所有 URL 都具有相同的架构

domain.de/index.PHP?<sitename>

一个 URL 参数是站点名称

现在我想重定向其中一些 URL,正确的重定向如何只重定向这些页面中的一个而不是所有页面

提前致谢。

我试过了:

Redirect 301 /index.PHP?impressum /impressum

示例:

旧网址:/index.PHP?oldurl 新网址:/newurlWithCompletlyDifferentURLName

更新:

# BEGIN wordpress
# Die Anweisungen (Zeilen) zwischen „BEGIN wordpress“ und „END wordpress“ sind
# dynamisch generiert und sollten nur über wordpress-Filter geändert werden.
# Alle Änderungen an den Anweisungen zwischen diesen Markierungen werden überschrieben.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.PHP$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.PHP [L]
</IfModule>

# END wordpress

RewriteCond %{THE_REQUEST} \s/+index\.PHP\?impressum1\s [NC]
RewriteRule ^ /impressum? [R=301,L]

更新

enter image description here

解决方法

您能否尝试使用所示示例进行以下操作、编写和测试。请确保在测试您的网址之前清除浏览器缓存。

RewriteEngine ON
RewriteCond %{QUERY_STRING} !^$
RewriteRule ^index\.php/? /%{QUERY_STRING}? [R=301,NC,L] 
,

完整的 .htaccess:

# BEGIN WordPress
# Die Anweisungen (Zeilen) zwischen „BEGIN WordPress“ und „END WordPress“ sind
# dynamisch generiert und sollten nur über WordPress-Filter geändert werden.
# Alle Änderungen an den Anweisungen zwischen diesen Markierungen werden überschrieben.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} \s/+index\.php\?impressum1\s [NC]
RewriteRule ^ /impressum? [R=301,L]

RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

之前的回答:

这可能适用于您的站点根目录 .htaccess:

RewriteEngine On

# all rules that have different redirect URL
RewriteCond %{THE_REQUEST} \s/+index\.php\?oldUrl1\s [NC]
RewriteRule ^ /newurl1? [R=301,L]

RewriteCond %{THE_REQUEST} \s/+index\.php\?oldUrl2\s [NC]
RewriteRule ^ /newurl2? [R=301,L]

# a generic rule that will redirect /index.php?foobar to /foobar
RewriteCond %{THE_REQUEST} \s/+index\.php\?(\S+)\s [NC]
RewriteRule ^ /%1? [R=301,L]

请理解 Redirect 指令不支持正则表达式,它只匹配起始 URI。无法匹配查询字符串。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。