-1

我正在重建我的网站并想更改网址 - 我需要让搜索引擎知道,所以我将使用 301 重定向。

我的页面位于http://site.com/search.php

我想使用这个网址

http://site.com/search?s=foo&bar=bat&so+on&so+forth

我的 rewriteCond 是

RewriteRule !^search search.php [R=301,L]

我收到 404。我做错了什么?

4

1 回答 1

1

试一试,它应该删除.php并重定向到search并显示以下内容php

Options +FollowSymLinks -MultiViews

RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(.*)\.php [NC]
RewriteRule ^ /%1 [R=301,QSA,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f
RewriteRule ^([^/]+)/?$ $1.php [L]

在第一条规则中,我们检查请求以查看是否.php存在,如果存在,我们将其重定向到不带.php.

(.*)将捕获之前的任何内容,.php并且该标志QSA将确保将查询字符串附加到其上。

^([^/]+)/?$这将匹配任何不是 a 的东西,/直到我们找到 a/或结束。

因此,如果我们访问domain.com/index它将捕获索引并在内部重定向到 index.php。

于 2013-09-01T17:17:45.990 回答