我有以下代码:
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用于路由除外。
提前致谢。
答案 0 :(得分:0)
在注释掉的RewriteBase /
RewriteCond %{THE_REQUEST} /searchPage\.php\?crs_category=([^&\ ]+)
RewriteRule ^ /category/%1? [L,R=301]