[英]What is the best way to limit the amount of individual folders in an URL so that multiple urls do not reference the same content?
在php中,我有一個腳本,該腳本使用mod_rewrite重定向特定URL中的所有調用。 例如,mod重寫規則如下所示:
RewriteCond %{DOCUMENT_ROOT}/articles/$1 !-f
RewriteRule ^/articles/(.+)$ /articles/index.php [L]
然后,我的index.php腳本將url分成其各個組成部分,並根據這些組成部分執行特定功能。
我的問題是弄清楚當人們向URL添加其他子文件夾時如何制作腳本404。 例如,如果我有這樣的網址:
http://www.example.com/part/blue-widget/
我的腳本將顯示blue-widget頁面。 現在,如果有人將網址更改為:
http://www.example.com/part/blue-widget/another_dir/
該腳本仍將使用此新URL顯示藍色小部件頁面。 我想要的是腳本改為發出404錯誤。 我可以讓每個函數檢查URL中的組件數量,如果數量正確,則顯示內容,否則發出404,但不確定這是否是最佳方法。
當然,這取決於加載每個頁面的代碼如何工作? 例如,如果每個文件夾都是函數中的一個參數(如許多框架),則可以將文件夾的數量與函數具有的輸入參數的數量進行比較?
編輯:會這樣嗎?
如果您有一組已知零件,則可以執行以下操作:
switch ($part) {
case 'blue-widget':
// Show blue widget
break;
case 'red-widget':
// Show redwidget
break;
case 'yellow-widget':
// Show yellow widget
break;
default:
header('HTTP/1.1 301 Moved Permanently');
header("Location: xxx");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.