Mod Rewrite用于产品页面,但不适用于类别页面

时间:2012-05-28 17:56:27

标签: .htaccess mod-rewrite seo friendly-url

我得到了以下modrewrite脚本:

RewriteCond %{ENV:space_replacer} !^$ 
RewriteRule ^.*$ %{ENV:space_replacer} 
RewriteRule (.*)/(.*)$ product.php?categorie_url=$1&product_url=$2

THIS ONE ABOVE IS WORKING: -> domain.com/korsetten/school-girl


RewriteCond %{ENV:space_replacer} !^$ 
RewriteRule ^.*$ %{ENV:space_replacer} 
RewriteRule (.*)$ categorie.php?categorie_url=$1

THIS ONE ABOVE IS NOT WORKING: -> domain.com/korsetten

整个.htaccess文件:

RewriteEngine on 

RewriteCond %{ENV:space_replacer} !^$ 
RewriteRule ^.*$ %{ENV:space_replacer} 
RewriteRule (.*)/(.*)$ product.php?categorie_url=$1&product_url=$2  

RewriteCond %{ENV:space_replacer} !^$ 
RewriteRule ^.*$ %{ENV:space_replacer} 
RewriteRule (.*)$ categorie.php?categorie_url=$1

有人可以解释一下我对“类别”页面做错了什么吗?

2 个答案:

答案 0 :(得分:0)

不确定为什么第二个不适合你,我在测试我的apache设置时遇到了问题。但以下内容对我有用:

RewriteCond %{ENV:space_replacer} !^$
RewriteRule ^.*$ %{ENV:space_replacer}
RewriteRule ^([^/]+)/([^/]+)$ product.php?categorie_url=$1&product_url=$2  [L]

RewriteCond %{ENV:space_replacer} !^$
RewriteRule ^.*$ %{ENV:space_replacer}
RewriteRule ^([^/]+)/?$ categorie.php?categorie_url=$1  [L]

刚刚调整了正则表达式并添加了[L]标志。

答案 1 :(得分:0)

感谢您的回答,但它对我没有用,下面的代码对我有用:

RewriteCond %{REQUEST_URI} ^(.*)\ (.*)$ 
RewriteRule ^.*$ %1-%2 [E=space_replacer:%1-%2] 
RewriteCond %{ENV:space_replacer} !^$ 
RewriteCond %{ENV:space_replacer} !^.*\ .*$ 

RewriteRule ^.*$ %{ENV:space_replacer} [R=301,L] 
RewriteRule (.*)$ categorie.php?categorie_url=$1&%{QUERY_STRING}
RewriteRule (.*)/(.*)$ products.php?categorie_url=$1&product_url=$2&%{QUERY_STRING}

现在$ _GET方法也适用于categorie.php页面。 现在我可以使用$ _GET [' categorie_url']从数据库中检索当前的类别。