簡體   English   中英

限制URL中單個文件夾數量的最佳方法是什么,以使多個URL不會引用相同的內容?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM