2

在已经包含以下行的 htaccess 中:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.+)$ index.php?page=$1 [QSA]

从原始网址重写网址:

http://www.domain.com/index.php?page=this-is-the-title

http://www.domain.com/this-is-the-tile

我的问题是,带有字符串 index.php?page= 的原始 url 仍然可以访问,如果我可以在这些之前或之后添加一些行,或者对已经存在的行进行一些修改,以将 301 重定向到第二种是一个 url,所以每当有人尝试访问它时,浏览器会自动加载没有索引和查询字符串的那个。

我简单地尝试了,在 qsa 行上添加了 ar=301 标志,但这破坏了一切,出现 500 错误。

4

1 回答 1

1

是的,您需要此附加规则:

# external redirect from actual URL to pretty one
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+index\.php\?page=([^\s&]+) [NC]
RewriteRule ^ /%1? [R=301,L]
于 2013-10-29T21:20:51.130 回答