为什么我的代码mod重写.htaccess不起作用?

时间:2014-09-22 13:06:47

标签: php apache .htaccess mod-rewrite

为什么我的代码mod重写.htaccess不起作用?

我测试加载页面www.example.com/products_type/ipod/black

当我加载页面时,它不是回显products nameproducts color

我该怎么做?

这个我的代码products_type.php

<?PHP
session_start();
include("connect.php");
echo $_GET[products_name];
echo $_GET[products_color];
?>

这是我的代码.htaccess

RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI}.php -f
RewriteRule ^(.*)$ $1.php [L]
RewriteRule ^products/([^-]*)/([^-]*)$ /products.php?products_name=$1&products_id=$2 [L]
RewriteRule ^products_type/([^-]*)/([^-]*)$ /products_type.php?products_name=$1&products_color=$2 [L]
RewriteCond %{HTTP_HOST} ^example\.com
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
ErrorDocument 404 /404.php

2 个答案:

答案 0 :(得分:2)

使用

$_GET['products_name'];
$_GET['products_color'];

不引用它们,它们被视为constants

答案 1 :(得分:1)

您的规则无序。遵守这样的规则:

ErrorDocument 404 /404.php
RewriteEngine on

RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE]

RewriteRule ^products/([^-]*)/([^-]*)$ products.php?products_name=$1&products_id=$2 [L,QSA]
RewriteRule ^products_type/([^/]+)/([^/]*)/?$ products_type.php?products_name=$1&products_color=$2 [L,QSA]

RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI}.php -f
RewriteRule ^(.+?)/?$ $1.php [L]
相关问题