我有兩個mod_rewrite的規則,用於定義類別和產品。產品顯示類別,並點擊一個產品來了一個產品頁面:mod_rewrite的,第一條規則的作品完美,第二條規則不
- 這工作:
http://www.example.com/ELE/electricalgoods/
如果這需要的碼值「ELE」,並與重寫使用它實際上撥打/view_category.php?cat=ELE
。這工作完全,使用以下的mod_rewrite:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]*)/([^/]*)/([^/]*)$ /show_category.php?catcode=$1&page=$3 [NC]
(這還包括進一步的 「文件夾」 在類別視圖頁面如http://www.example.com/ELE/electricalgoods/3/
)
- 然而,這在我的htaccess的文件下面我想有一個類似的修改,只有這樣:
http://www.example.com/product/EL063/Earphones/
重寫爲:/view_product.php?prodid=EL063
我做這與該htaccess的代碼:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^product/([^/]*)/([^/]*)$ /show_product.php?prodid=$1 [NC,L]
但不知何故,如預期,這並不工作,我想要的產品出現在與"/product/<code>/<name>/"
佈局「產品/」文件夾中,然後調用/show_product.php
文件。
會發生什麼情況是view_product.php
頁面的調用失敗並出現404錯誤。
我試圖重新排列我的mod_rewrite規則,並且我也嘗試了在括號內跳轉/放置URL調用的product/
段的變體。 我也嘗試將$1
更改爲$2
或$3
確認代碼的排序已更改,但似乎不起作用。
我在做什麼錯?
爲了清楚起見,這裏是我的全部的htaccess代碼:
Options -Indexes
RewriteEngine On
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule^http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^product/([^/]*)/([^/]*)$ /show_product.php?prodid=$1 [NC,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]*)/([^/]*)/([^/]*)$ /view_category.php?catcode=$1&page=$3 [NC,L]
編輯:更新的mod_rewrite代碼,問題依然存在,甚至L
旗幟和規則