2017-09-26 86 views
0

比方說,我進入...htaccess的mod_rewrite的默認重定向如果沒有正則表達式匹配

http://mypage.info/anything 

我想以下幾點:

  • 如果文件存在anything.php,阿帕奇應該重定向到http://mypage.info/anything.php
  • 如果文件anything.php不存在,Apache應該重定向到http://mypage.info/search.php?q=anything

請注意,我沒有測試特定文件。這完全取決於用戶的輸入。

這可能嗎?

感謝

+0

的可能的複製[如何測試,如果文件,在Apache 2.4的標籤存在?(https://stackoverflow.com/questions/26138120/how-to-test-if -file-exists-the-tag-if-on-apache-2-4) – ctwheels

+0

沒有。我沒有測試特定的文件,但我的服務器中存在任何文件。 – Marcio

+0

您將根據QUERY_STRING重寫或映射。魔鬼在細節中,這就是爲什麼這不是答案。檢查一個資源是否存在是棘手的部分,但是一個天真的impl會結合條件來檢查重定向是否會導致404錯誤。然而,這將變得很複雜。 – jdv

回答

0
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /search.php?q=$1 [R=302,L] 
相關問題