2015-12-06 111 views
0

我有以下情形: 我想做一個重定向系統是這樣的:根據URL重定向

/redirect/place1 -> /page.php?place=place1 
/redirect/testabc -> /page.php?place=testabc 
/redirect/xyzw123 -> /page.php?place=xyzw123 

我現在可以看到的唯一的辦法就是做/重定向具有子文件夾一個index.php重定向它。但我希望這是完全自動的。

感謝您的任何答案!

+0

阿帕奇服務器?在.htaccess文件中的301重定向是要走的路。 – jdm2112

回答

0

如果你想重定向/重定向/(任何),以作爲/page.php?place=(Same任何東西)

您可以使用從mod_alias重定向命令:

Redirect 301 /redirect/ /page.php?place= 

你婉使用重寫規則COMAND從mod_rewrite

RewriteRule /redirect/(.*) /page.php?place=$1 [L] 

個更多信息:

  • [L]是那種重定向的,你可以,如果你想要做一個重定向條件,如增加一個狀態代碼[L,R = 301]將重定向發送301重定向永久

  • 在這裏你可以找到所有的HTTP代碼重定向 https://fr.wikipedia.org/wiki/Liste_des_codes_HTTP

  • 在這裏你可以找到所有從改寫狀態標誌 https://httpd.apache.org/docs/2.4/rewrite/flags.html

  • 如果你想重定向只有當頁面或文件夾不存在:

    RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f 
    RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d 
    RewriteRule /redirect/(.*) /page.php?place=$1 [L] 
    

!-d的意思是沒有找到一個文件夾

!-f的意思是不是作爲文件找到