我使用的是这样的东西:
Redirect 301 /old http://example.com/new
它重定向到http://example.com/new?old
我不想让第一个变量和第二个变量相加,那么如何避免这种情况呢?
会不会是因为文档中其他地方的RewriteCond/RewriteRule?完整的文档如下所示:
# Enable Rewrite Engine
RewriteEngine On
RewriteBase /
# Remove index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]
RewriteRule ^(.*)$ /index.php?$1 [L]
# Remove www.
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
# Section redirects
Redirect 301 /old http://example.com/new
感谢您的帮助。谢谢。
发布于 2011-10-24 13:03:12
修改查询字符串默认情况下,查询字符串原封不动地传递。但是,您可以在包含查询字符串部分的替换字符串中创建URL。只需在替换字符串内使用问号,以指示应将以下文本重新注入到查询字符串中。如果要擦除现有查询字符串,请仅以问号结束替换字符串。要组合新旧查询字符串,请使用QSA标志。
这意味着你可以添加一个'?‘在重定向目标的末尾删除“旧的”query_string。
试试这个:
# Section redirects
Redirect 301 /old http://example.com/new?
发布于 2011-10-24 13:34:46
正如@Seybsen指出的那样,可以使用问号来删除查询字符串。
我发现,只要RewriteRule
在文档中的位置正确,我也可以使用它。它必须在index.php被移除的部分之上。
RewriteRule ^old http://example.com/new [R=301,NC,L]
或者,要使用query_string:
RewriteRule ^old(.*) http://example.com/new$1 [R=301,NC,L]
https://stackoverflow.com/questions/7866288
复制相似问题