2014-10-20 56 views
1

這是工作如何在.htaccess中使用多個URL重寫規則

RewriteRule ^([a-zA-Z0-9_-\s]+)-([a-zA-Z0-9_-\s]+)\.html$ detail.php?category=$1&model=$2 

這是工作

RewriteRule ^([a-zA-Z0-9_-\s]+)\.html$ brand.php?brand=$1 

這是行不通的

RewriteRule ^([a-zA-Z0-9_-\s]+)\.htm$ colour.php?colour=$8 

只有兩個規則的工作如何使用多重寫規則使用.htaccess

+1

你只得到了一個'()'在你的最後一個例子-set,爲什麼/應該如何$ 8以往任何時候都被填充? – 2014-10-20 18:10:51

+0

連字符在中間是錯誤的使它成爲'RewriteRule ^([\ w \ s - ] +).htm $ colour.php?color = $ 1 [L,QSA]' – anubhava 2014-10-20 18:12:01

+0

Marc B @不工作多數民衆贊成爲什麼我改變它,但8美元也不工作 – user1796164 2014-10-20 18:16:52

回答

0

如果我使用這樣^colour/([a-zA-Z0-9_-\s]+)\.htm$ colour.php?colour=$1然後它正在與出colour/這是不工作

這個問題似乎是由於有利的MultiViews。選項MultiViewsApache's content negotiation module使用,它在mod_rewrite之前運行,並且使Apache服務器匹配文件擴展名。所以/file可以在URL中,但它將服務/file.php

要禁用此使用這條線在你的.htaccess的頂部:

Options -MultiViews 

RewriteEngine On 
RewriteBase/

RewriteRule ^colour/([\w\s-]+)\.htm$ colour.php?colour=$1 [L,QSA,NC] 
+0

if我粘貼這個選項-MultiViews RewriteEngine在 RewriteBase /它停止工作,如果我使用顏色/然後我的所有頁面URL顯示像這樣http://www.example.com/data/colour/images/logo.jpg但我在數據/圖像文件夾中有一個徽標文件這是所有頁面鏈接中的問題 – user1796164 2014-10-20 19:09:14

+0

您的評論沒有任何意義。通過編輯您的問題發佈完整的.htaccess,並提供您在瀏覽器中輸入的完整URL – anubhava 2014-10-20 19:14:52