2012-04-02 64 views
0

我想要做的一些信息,如果有人類型,例如查詢:mod_rewrite的查詢與根域

http://domain.com/abracadabra 

如果有人在這個地址進入,我想它去:

search.php?query=abracadabra 

我已經使用查詢進行了重寫,但是沒有從根目錄進行重寫。
任何幫助將是偉大的!

是否有可能檢查被搜索的字符串是否是數字並將其發送到不同的PHP頁面?也許鏈接到一個新的.htaccess目錄?

回答

2

從根本上做它與在其他地方做它沒有什麼不同。下面的內容將把資源(文件系統中不存在的)的每個請求都變成search.php

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ search.php?query=$1 [L,QSA] 
+0

你會希望把這個** **下面任何現有的規則,你可能有,因爲這條規則將捕獲任何URL(這不是一個文件或文件夾) – Lix 2012-04-02 22:17:00

+0

只是好奇 - 什麼做的L和QSA旗幟呢?我認爲他們追加到原來的?無論哪種方式..這工作!感謝:D 此外,有沒有辦法將PHP邏輯包含到.htaccess中?例如,如果搜索字符串是數字,則它使用與search.php不同的PHP文件。 – 2012-04-02 23:39:09

+0

'QSA'將查詢字符串發送到請求。 「L」表示這是最後一條規則,所以如果匹配,它會忽略後續規則。 [閱讀更多關於RewriteRule標誌](http://httpd.apache.org/docs/current/rewrite/flags.html)。您不能在.htaccess中包含PHP,但只能使用正則表達式匹配數字。 '^(。*)$'是當前正在匹配的正則表達式。用'^([\ d] +)$'替換它只匹配數字。 – kba 2012-04-03 17:12:30