Htaccess 301重定向条件

时间:2015-08-09 20:54:34

标签: php apache .htaccess mod-rewrite redirect

我有以下代码:

RewriteEngine On


# If you need to use the `RewriteBase` directive, it should be the
# absolute physical path to the directory that contains this htaccess file.
#
# RewriteBase /

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

RewriteRule ^category/(.*)$ /searchPage.php?crs_category=$1 [L,NC,QSA]
RewriteCond %{REQUEST_URI} !^/searchPage.php
RewriteRule ^ index.php [QSA,L]

当我输入category/business时,此功能非常有用,但如果有人输入searchPage.php?crs_category=business这样的旧网址,并将其重定向为category/business并使用301代码,我也希望写入网址让SEO知道这是新地址。

注意:

的原因
RewriteCond %{REQUEST_URI} !^/searchPage.php

条件是因为我正在使用Slim框架,并且我希望将所有请求重定向到索引,但searchPage用于路由除外。

提前致谢。

1 个答案:

答案 0 :(得分:0)

在注释掉的RewriteBase /

下添加此权限
RewriteCond %{THE_REQUEST} /searchPage\.php\?crs_category=([^&\ ]+)
RewriteRule ^ /category/%1? [L,R=301]