我正面臨著我試圖用 web.config 檔案解決的 SEO 規范問題的問題。在多個 URL 上訪問同一頁面(特別是 2 個)
我的服務器是基于 Windows 的,但我使用的是 PHP Codeigniter 腳本。
我的網址結構是
https://example.com/xyz/index.php/dynamic-part/optional-dynamic-part
但它也可以使用
example.com/xyz/dynamic-part/optional-dynamic-part
我想要的是
- 唯一可訪問的鏈接應該是 example.com/xyz/index.php/dynamic-part/optional-dynamic-part
- 如果有人試圖以
https://example.com/xyz/dynamic-part/optional-dynamic-part這種方式訪問??,他應該被永久重定向到https://example.com/xyz/index.php/dynamic-part/optional-dynamic-part
我嘗試了以下方法:
<rule name="redirecting" patternSyntax="Wildcard">
<match url="^ci/actionone*"/>
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
</conditions>
<action type="Redirect" url="ci/index.php/{R:1}" redirectType="Permanent" />
</rule>
另一種嘗試是:
<rule name="someRule" stopProcessing="true">
<match pattern="^ci" />
<<conditions>
<add input="{REQUEST_URI}" negate="true" type="Pattern" pattern="^index">
</<conditions>
<action type="Redirect" url="example.com/ci/index.php/actionone" redirectType="Permanent" />
</rule>
<rewriteMaps>
<rewriteMap name="StaticRedirects">
<add key="/ci/actionone" value="/ci/index.php/actionone" />
</rewriteMap>
</rewriteMaps>
請指導我如何解決這個問題。謝謝
uj5u.com熱心網友回復:
再次回來!有一個適合我的解決方案
這是解決方案。
基本上,我所做的是檢查在我的情況下 URL 是否命中特定字串ci/actionone并且有任何字串 URL 將被重定向到操作 URL。
<rule name="name1: with pagination">
<match url="^(ci/actionone)/(.*)$"/>
<action type="Redirect" url="ci/index.php/actionone/{R:2}"/>
</rule>
同樣,如果 URL 包含一個確切的字串,它將重定向到確切的操作 URL
這是因為第一頁是在沒有分頁的情況下訪問的,而下一頁在 URL 中有一個分頁 slug。
<rule name="name2: without pagination">
<match url="^(ci/actionone)$"/>
<action type="Redirect" url="ci/index.php/actionone"/>
</rule>
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/465601.html
