2014-09-22 94 views
0

爲什麼我的代碼mod重寫.htaccess不起作用?爲什麼我的代碼mod重寫.htaccess不起作用?

我測試負載頁面www.example.com/products_type/ipod/black

當我加載網頁,它沒有迴音products nameproducts color

我該怎麼做?

這是我的CODE 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 
+1

嘗試引述他們'$ _GET [ 'products_name'];'和'$ _GET [ 'products_color'];'否則,他們可能會爲常數處理。 – 2014-09-22 13:13:18

+0

Fred -ii ----它的工作,你能請指教爲什麼'$ _GET [products_name];'不工作,但''_GET ['products_name'];'工作 – 2014-09-22 13:21:05

+0

因爲,沒有引號,它被視爲一個不變。 http://php.net/manual/en/language.constants.php - 我在下面發佈了一個答案來結束這個問題。 – 2014-09-22 13:21:41

回答

2

使用

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

通過不引述他們,他們被視爲constants

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]