我嘗試重寫我的產品頁面的URL這是動態保持GET URL後變量改寫
中的一個例子是:
product.php?id=780-1AC930D
和我試着將它改寫爲:
產品/ 780-1AC930D
我需要變量仍然通過網址,但目前它不適用於我。
我在的product.php
頁面像這樣的頂級重定向:
$prodID = $_GET['id'];
if(!isset($prodID) && $prodId == ""){
header('Location: http://www.***********.com') ;
}
else{
,我知道GET變量的心不是通過,因爲它使我重定向。
我對的.htaccess文件的代碼是這樣的:
Options FollowSymLinks
RewriteEngine On
RewriteBase/
RewriteRule ^product/(.*)$ /product.php?id=$1 [QSA]
,爲URL的HTML是:
<a href = "product/<?php echo $product[$i]['catID'];?>">
沒有任何人有一個線索,爲什麼這個心不是工作?
編輯以提供更多信息。
這是我整個的.htaccess文件
Options FollowSymLinks
RewriteEngine On
RewriteBase/
RewriteRule ^product/(.*)$ /product.php?id=$1 [QSA]
## If the request is for a valid directory
RewriteCond %{REQUEST_FILENAME} -d [OR]
## If the request is for a valid file
RewriteCond %{REQUEST_FILENAME} -f [OR]
## If the request is for a valid link
RewriteCond %{REQUEST_FILENAME} -l
## don't do anything
RewriteRule^- [L]
RewriteRule ^([^/.]+)/([^/]+)/?$ /$1.php?cat=$2 [L,QSA]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+([^.]+)\.php\?cat=([^\s&]+)&subCat=([^\s&]+)\s [NC]
RewriteRule^/%1/%2/%3? [R=301,L]
RewriteRule ^([^/.]+)/([^/]+)/([^/]+)/?$ /$1.php?cat=$2&subCat=$3 [L,QSA]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+([^.]+)\.php\?cat=([^\s&]+)\s [NC]
RewriteRule^/%1/%2? [R=301,L]
# REMOVE PHP EXTENSIONS
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ $1.php [L,QSA]
我剛搬到RewriteRule ^product/(.*)$ /product.php?id=$1 [QSA]
從「#刪除PHP擴展」到RewriteBase低於以上,它似乎解決我的問題。
其他重寫規則適用於我的類別和子類別頁面,然後再將其實際添加到產品頁面。
所以我很好奇爲什麼把這個product.php行放在這個其他的東西上面呢?
你已經做過任何調試了嗎?什麼是錯誤信息? –
我沒有收到錯誤消息。它只是重定向我,因爲IF語句表明$ _GET ['id']不存在然後重定向。如果我把這個重定向出來然後它只是加載一個空白產品頁面 – Kevlar
只是爲了排除錯別字,緩存重定向等,你看到'var_dump($ _ GET)'? – Brad