2

我只是想写一个简单的 url 重定向,我尝试使用下面的代码,除了以Redirect 302开头的行之外,Everyline 都可以工作,我想做的是让这条线工作。

# SEO URL Settings
RewriteEngine On
# If your opencart installation does not run on the main web folder make sure you folder it does run in ie. / becomes /shop/ 

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+taksit\.asp\?[^\s&]+ [NC]
RewriteRule ^ /? [R=301,L]

**Redirect 302 /mikrometreler/%C4%B0%C3%A7-%C3%A7ap-mikrometresi?sort=p.price&order=ASC http://www.hirdavatdeposu.com/mikrometre/ic-cap-mikrometresi**

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\_(.*)$ $1-$2 [R=301,L]

这不起作用的原因是什么?

4

1 回答 1

0

首先,重定向指令不是由mod_rewrite管理,而是由我的mod_alias管理。所以你不需要启动 RewriteEngine。

现在查看重定向文档,我们可以看到语法是:

Redirect [status] /path http://full_uri

所以尝试类似:

Redirect 302 /asdasd/asdasd http://www.mysite.com/newurl

当它起作用时,尝试将 302 更改为 301,因为在第一次回答后浏览器不会请求 301,因此它们更难调试。

编辑

你的问题现在大不相同了:-)

尝试:

  • 从 Redirect 命令的路径中删除查询字符串部分(查询字符串部分是 ? 之后的所有内容,路径不包含 ? 和这些参数)
  • 如果要匹配表达式,请尝试 RedirectMatch 而不是 Redirect
  • 如果您的问题没有通过前面的步骤转售,请尝试使用 mod rewrite 解决它(带有 [R=302] 部分的规则)。但是,如果您需要处理查询字符串部分,这将是复杂的重写规则,如通过查询字符串使用重写规则重写动态 URL中所见
于 2013-01-20T21:03:44.417 回答