多个相同的url htaccess重定向

时间:2012-08-23 01:58:39

标签: apache .htaccess redirect

我创建了一个自定义产品/电子商务网站。它有一个类别,子类别和产品。以下是我要重定向的网址:

website.com/clothes
website.com/clothes/
website.com/clothes/tshirts
website.com/clothes/tshirts/
website.com/clothes/tshirts/bluepinned
website.com/clothes/tshirts/bluepinned/

以下是.htaccess条目。有没有办法在一行中写下以下内容?例如,如果URL是,website.com/clothes/tshirts确保PHP文件意识到我想加载T恤类别,而不是在衣服分类中显示名为tshirts的产品。

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(clothes)/([^/\.]+)/([^/\.]+)/?$ products.php?c=$1&sc=$2&p=$3 [NC,L,QSA] 
RewriteRule ^(clothes)/([^/\.]+)/?$ products.php?c=$1&sc=$2 [NC,L,QSA] 
RewriteRule ^(clothes)/?$ products.php?c=$1 [NC,L,QSA] 

在加载产品图片时,我有时也会遇到406错误 - 是否有任何重写规则可以实现这一点。无论如何,实际图像都在一个单独的目录中网站/images/clothes/tshirts/bluepinned.jpg

1 个答案:

答案 0 :(得分:0)

您需要分别将条件应用于每个规则:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(clothes)/([^/\.]+)/([^/\.]+)/?$ products.php?c=$1&sc=$2&p=$3 [NC,L,QSA] 

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(clothes)/([^/\.]+)/?$ products.php?c=$1&sc=$2 [NC,L,QSA] 

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(clothes)/?$ products.php?c=$1 [NC,L,QSA] 

也有可能通过添加

来解决相对vs绝对路径问题。
<base href="/">

在您的页面标题中。