我有一個名爲重寫規則的同名
details.php
文件,我試圖把htaccess的下面一行
RewriteRule ^details/(.+)/(.+)$ /details.php?id=$1&name=$2 [NC]
,並沒有具有相同名稱的工作這是目前靶向
UPDATE 1:
問題通過求解加入-MultiViews
選項+的FollowSymLinks -MultiViews
我有一個名爲重寫規則的同名
details.php
文件,我試圖把htaccess的下面一行
RewriteRule ^details/(.+)/(.+)$ /details.php?id=$1&name=$2 [NC]
,並沒有具有相同名稱的工作這是目前靶向
UPDATE 1:
問題通過求解加入-MultiViews
選項+的FollowSymLinks -MultiViews
去掉 「* 」 的。 「」是一個特殊字符,意思是「零個或多個前一個字符」。如果不是不正確的話,那麼在你的正則表達式中有兩個連續的地方是非常不規則的。如果你確實有一個名爲details.php
的文件,你也不需要它們。
對不起,我試圖把粗體代碼放在'詳細信息'字中。 – Anonymous
你應該嘗試:
RewriteRule ^details/([0-9]+)/(\w+)/?$ /details.php?id=$1&name=$2 [NC,L]
其中:
ID =限制ID只數
名 =限制名存實亡單詞+ NUMS
nop ..仍然是一樣的...注意:未定義的索引:id在public_html/details中。第7行的php注意:未定義的索引:第8行中的public_html/details.php中的名稱 – Anonymous
最近,我有一個問題,我需要一個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選項的情況下向所涉及的主機添加自定義指令。
什麼**表示? – diEcho
嘗試使用RewriteRule ^/details /(.+)/(.+)$ /details.php?id=$1&name=$2 [NC] – david
opsi,** bold:PI試圖提請注意「細節」一詞 – Anonymous