.htaccess包含网址的旧部分

时间:2018-10-31 18:03:40

标签: php .htaccess

我正在尝试为旧的url结构创建到新的url结构的各种重定向。

旧的网址结构:

index.php?page=protocols&id=1

新的网址结构:

/protocols/view/1

这是我的.htaccess,但是重定向不正确。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{THE_REQUEST} \s/+index\.php\?page=protocols&id=([^&\s]+) [NC]
RewriteRule ^ \/protocols\/view\/%1 [R,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>

它正在重定向到/protocols/view/1?page=protocols&id=1

我如何正确重定向?

1 个答案:

答案 0 :(得分:2)

您需要在规则中使用<div app-grid-header></div>“查询字符串丢弃”标志,以从新URL中删除其他字符串

更改

encapsulation

QSD

如果您的服务器版本不支持RewriteRule ^ \/protocols\/view\/%1 [R,L] ,则只需在规则的目标网址的末尾添加一个空问号

RewriteRule ^ \/protocols\/view\/%1 [R,QSD,L]