怎么可能在htaccess中进行这种重写

时间:2013-10-29 21:17:44

标签: .htaccess

在已包含此行的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 =的原始网址,如果可以在我之前或之后添加某些行,或者已经对其中的行进行了一些修改,则需要重定向301它是第二种类型的url,因此每当有人试图访问它时,浏览器会自动加载没有索引和查询字符串的那个。

我试过简单,在qsa线上添加了一个r = 301标志,但是因为500错误而破坏了所有内容。

1 个答案:

答案 0 :(得分: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]