2012-08-15 24 views
-4

可能重複:
How to redirect all requests to index.php and keep the other GET params?
Rerouting all php requests through index.php如何爲一組路徑調用特定的PHP腳本?

假設我們有/var/www/someapp/index.php腳本。現在,我們怎樣才能使Apache服務器發送所有喜歡

http://somedomain.info/someapp/alpha 
http://somedomain.info/someapp/beta 
http://somedomain.info/someapp/beta/gamma 
http://somedomain.info/someapp/epsilon/omega 

...到非常index.php腳本網址的請求的,以及我們如何能夠從PHP腳本中檢索完整的路徑?

+0

請參閱[StackOverflow常見問題](http://stackoverflow.com/faq),特別是關於[不要問什麼](http://stackoverflow.com/faq/#dontask)的部分,即:* 「如果你可以想象一整本書可以回答你的問題,那麼你的問題就太多了。」* – orourkek 2012-08-15 22:27:43

+3

此外,這是[this]的重複(http://stackoverflow.com/questions/9694118/rerouting-all- php-requests-through-index-php),[this](http://stackoverflow.com/questions/3776714/htaccess-rewriting-all-requests-to-a-single-controller?rq=1),[this ](http://stackoverflow.com/questions/5214502/how-to-redirect-all-requests-to-index-php-and-keep-the-other-get-params)和[this](http: //stackoverflow.com/questions/2669258/redirect-everything-to-index-php),名稱*只有幾個* ... – orourkek 2012-08-15 22:30:50

+2

[這裏有幾十個更多](https://www.google.com/search q =站點%3Astackoverflow.com +重定向+〜+所有子目錄〜+至+〜+單文件),如果任何人有興趣。 – orourkek 2012-08-15 22:40:27

回答

1

通常這是通過重寫規則(即Apache上的mod_rewrite)完成的。這樣的Apache可能涉及修改conf文件爲主機,或施加在Web根.htaccess文件下面(假設主機配置允許這樣的覆蓋)

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d  
RewriteRule ^someapp/(.*)$ /someapp/index.php?q=$1 [L] 

這將請求重定向到index.php文件(不更改瀏覽器地址欄中的URL),並通過GET將'someapp /'作爲參數'q'傳遞給腳本,只要URI不匹配一個實際的文件或目錄。

+3

4k代表,你不能識別一個愚蠢? (這實際上是一個愚蠢的愚蠢行爲......) – orourkek 2012-08-15 22:32:56

+0

@orourkek當然重定向主題存在於多個地方。然而,這個特定的一個並不處理將所有請求重定向到index.php,而是處理特定子目錄中的請求。這真的是我回答它的原因。 – 2012-08-15 22:35:50

+2

真的嗎?而不是鏈接到許多回答這種特殊性的問題,[這裏有一大堆的列表](http://bit.ly/SoDrP1)。 *仍然是一個重要的誘惑*,如果OP甚至試圖尋找答案,很容易找到答案。 – orourkek 2012-08-15 22:39:04

相關問題