我有一种情况,我在/ products目录中有一堆旧内容。继续前进,新内容将进入/ product文件夹。如果文件或目录不存在,我想做的是重定向到/产品。
我在/ products文件夹中的.htaccess文件中有以下内容:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /product/$1 [R=301,L]
这适用于/ products目录中的文件以及包含index.htm文件或其他文件名的子目录,但是我想将非现有目录上的重定向限制为2级:
/ products / someproduct - 请勿重定向
/产品/ someproduct / anotherproduct 如果它不存在,请重定向到/ product / someproduct / anotherproduct
如何强制规则仅应用于2级或更深级别的子目录?
答案 0 :(得分:0)
尝试以下
RewriteEngine On
RewriteBase /
#for all /products/somefolder/any_folder_level_deeep content
RewriteCond %{REQUEST_URI} ^/products/([^/]+/.+)$ [NC]
#if file does not exist
RewriteCond %{REQUEST_FILENAME} !-f
#and directory does not exist
RewriteCond %{REQUEST_FILENAME} !-d
#redirect to product folder
RewriteRule . /product/%1 [R=301,L]