2011-11-17 68 views
1

我有一個名爲重寫規則的同名

details.php

文件,我試圖把htaccess的下面一行

RewriteRule ^details/(.+)/(.+)$ /details.php?id=$1&name=$2 [NC] 

,並沒有具有相同名稱的工作這是目前靶向

UPDATE 1:

問題通過求解加入-MultiViews

選項+的FollowSymLinks -MultiViews

+1

什麼**表示? – diEcho

+0

嘗試使用RewriteRule ^/details /(.+)/(.+)$ /details.php?id=$1&name=$2 [NC] – david

+0

opsi,** bold:PI試圖提請注意「細節」一詞 – Anonymous

回答

0

去掉 「* 」 的。 「」是一個特殊字符,意思是「零個或多個前一個字符」。如果不是不正確的話,那麼在你的正則表達式中有兩個連續的地方是非常不規則的。如果你確實有一個名爲details.php的文件,你也不需要它們。

+0

對不起,我試圖把粗體代碼放在'詳細信息'字中。 – Anonymous

0

你應該嘗試:

RewriteRule ^details/([0-9]+)/(\w+)/?$ /details.php?id=$1&name=$2 [NC,L] 

其中:

ID =限制ID只數
=限制名存實亡單詞+ NUMS

+0

nop ..仍然是一樣的...注意:未定義的索引:id在public_html/details中。第7行的php注意:未定義的索引:第8行中的public_html/details.php中的名稱 – Anonymous

0

最近,我有一個問題,我需要一個URL重寫,但不知道爲什麼它失敗。然後我偶然發現了這個線程,它解決了我的問題。

問題是,我的託管服務提供商默認啓用Multiviews。 This Page詳細解釋了爲什麼這不能很好地與RewriteRules網格化。我加入-Multiviews這個來解決我的問題:

Options +FollowSymLinks -MultiViews 

RewriteEngine On 
RewriteBase /devpath/SampleCustomerName/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !=/favicon.ico 
RewriteRule^index.php [L] 

如果我想轉到/ DEVPATH/SampleCustomerName /約而該文件夾中about.php居住,我會收到404錯誤。

隨着+在Multiviews

「它可以選擇根據媒體類型,語言,字符集和編碼的瀏覽器提供的優惠資源的最好體現。它還實現了一些功能,以更智能地處理髮送不完整協商信息的瀏覽器的請求。「 「要點在於Multiviews指令與我們的重寫規則相互干擾,因此讓我們的重寫規則正常工作的解決方案是在沒有Mutliviews選項的情況下向所涉及的主機添加自定義指令。