重定向我還在的.htaccess的工作有點模糊,和我環顧四周,但我無法找到任何幫助這一具體問題。的.htaccess重寫規則不是來自真正的文件夾
編輯:我意識到還有其他問題,似乎他們涵蓋了這個問題,但我檢查了一些,他們似乎沒有提供任何幫助,我可以理解,我不想用我自己劫持他們的問題。
這是我有:
Options +FollowSymLinks
#RewriteBase/
RewriteEngine on
RewriteRule /mp3/(.*) http://old.domain.com/mp3/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)$ /index.php?p=$1 [L]
你可以從最後一行看到,服務器名稱後輸入的字符串實際上是一個URL參數,並根據該參數,不同的內容是從拉數據庫和該頁面顯示在網站上。
我遇到的問題是客戶端有一個名爲「播客」的內容頁面,所以他們會去site.com/podcast
,它應該悄悄地重定向到site.com/index.php?=podcast
並加載該頁面的內容。不幸的是,客戶端在其服務器上也有一個真實的site.com/podcast/
文件夾。因此,重寫被忽略,瀏覽器嘗試加載該文件夾。如果我禁用列表,它會顯示文件列表或禁止的錯誤。
經過一番研究(我還是新來htaccess的),我瞭解到,兩行之前禁用如果路徑分改寫到一個實際的文件或文件夾。不幸的是,註釋掉一個與!-d
似乎沒有任何效果,並註釋掉既給了我一個服務器錯誤。
誠然,這裏的問題的一部分是缺乏遠見的。 URL重寫應該已經計劃的一切放在一起過,但它不是,直到該網站基本建成,我被告知,客戶希望「友好的URL」不包括?p=
部分。無論如何,也許有辦法解決這個問題。
有一些掛羊頭賣狗肉的.htaccess我可以使用,這將迫使即使輸入的網址指向一個實際存在的文件夾(而不是特定的文件)重寫?如前所述,去除!-d
似乎並沒有幫助,雖然我不知道爲什麼。也許我誤解了它的目的。
謝謝你的任何幫助,請手下留情與我,如果我忽略了一些東西明顯。這是客戶現場直播的一個問題,所以我在解決這個問題時會感到有些慌亂。再次感謝。
噢,並將該溶液不能特定到/podcast
。該方法的客戶端的站點設置,當他們要創建一個新的站點子頁面,一個新的名稱保存基於他們對網頁的標題,內容,並有可能(可能性不大,但仍可能)是另一個頁面可以使用與服務器上現有文件夾相匹配的名稱創建。
您可以通過site.com/index.php?=podcast正常訪問嗎? – Agilox
是的。這通常工作,因爲它沒有指向/ podcast文件夾。 – vertigoelectric