2013-02-04 67 views
1

我在網上看到了幾個例子,並在這裏的一些答案在stackoverflow。我還沒有找到任何符合我需要的東西。讓我首先說我對.htaccess的經驗很少,我正在通過在線閱讀教程和示例進行更多的研究。.htaccess重寫不存在的文件

希望有人能解釋我在做什麼錯在這裏...我不想讓文件發送重定向頭,而是掩蓋他們將要訪問的URL,如果它不存在,則使用另一個URL。

例子:

我去不存在的頁面(如404):

http://example.com/hello-everyone 

而是顯示404的,我寧願把它顯示從

http://example.com/?/hello-everyone 
內容

注意*我不想要重定向標頭,因爲我不希望人們必須看到?/前綴。

謝謝!

+0

什麼將處理請求。一個腳本,例如'index.php'或'handler.php'?如果是這樣,你想傳遞給該資源的參數是什麼?在這種情況下,應該是'你好 - 每個人'。 –

+0

該索引已經處理了傳遞給?/的數據,我只需要它,這樣如果有人忘記了?/,它仍然可以在沒有任何重定向的情況下工作。這是正確的,你好 - 每個人都會成爲傳遞的論點。 – user0000001

+0

讓我看看我是否明白。在這一刻,像這樣一個'http://example.com/?/ hello-everyone'的URL已經被傳遞給'index.php',但是你想要這些'http://example.com/hello-everyone '也傳遞給'index.php'?如果我錯了,請糾正我。 –

回答

2

你可以試試這個:

RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} /([^/]+)/?$ [NC] 
RewriteRule .* index.php?key=%1 [L] 

地圖默默

http://www.mywebsite.com/val

http://www.mywebsite.com/index.php?key=val

key是任何固定的鍵名和`VAL」是t中的變量值他傳入的URL。

/val必須是傳入URL中的最後一個字符串,才能使規則生效。

永久和可見的重定向,與[R=301,L]

更換[L]使用這種類型的引入URLs http://www.mywebsite.com/val的可能讓你在將來停止使用更容易記住此時使用的URL http://www.mywebsite.com/?/val

+0

Bravo。工作完美無瑕!乾杯隊友 – user0000001

+0

不客氣。很高興它對你有效。 –