2016-09-28 49 views
1

我想在Perl Web項目中設置簡單的URL路由而不必爲此包含框架。我相信這可以用.htaccess完成。將任何子目錄重新路由到腳本

該計劃提出任何要求使用example.com/anysubdirectory/...被路由到一個Perl/PHP腳本,它將分析無論是包含在/anysubdirectory/...和它後面的參數,然後確定向何處基於這些信息,用戶的服務器。

如果沒有任何子目錄的example.com被請求我需要仍然保持在這裏搜索索引頁的默認行爲。

由於/anysubdirectory/將是動態的,我不能夠預定義在/123/ -> option 1/abc/ -> option 2

我不是太熟悉,比典型的www和基地重寫其他htaccess的。

任何幫助,非常感謝。

回答

0

我相信我用根的.htaccess以下回答我自己的問題:

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ router.pl?action=$1 [L,NC,QSA] 

這似乎與我的初步測試中工作。

我相信這是它是如何工作的:

  • 如果請求的子目錄中找不到爲文件
  • 如果請求的子目錄中未找到的目錄
  • 重定向這個路由器.pl腳本以及來自原始網址的任何剩餘參數。

編輯:上面是不完全工作,這仍然重定向到服務器上找不到的任何文件到router.pl腳本。不是真正的我正在尋找的功能,我希望這隻會發生,如果它是一個子目錄,而不是一個無效的文件

不知道我想要任何機器人猜測文件名是定期盯着我的腳本。

如果上述任何一項不正確,請更正此回覆。

+0

既然你這麼說'RewriteCond%{REQUEST_FILENAME}!-f',它會重定向,如果它不是一個文件。如果你想要它存在目錄,說'-d'。 –

相關問題