0

我得到了以下 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

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

4

2 回答 2

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]标志。

于 2012-05-28T19:00:05.617 回答
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'] 从数据库中检索当前类别。

于 2012-05-29T12:23:25.970 回答