[英]Using RewriteRule on Friendly-URL - Get Variables with Redirect 301
我有一些問題。 我進行了很多搜索,嘗試了各種變體,但仍然無法正常工作。
我的目的僅僅是這樣:
重定向: http : //site.com/folder1/folder2/ 頁面
至: http : //site.com/folder1/folder2/ 頁面
請注意,我正在使用“友好的URL”。
現在,這里是我嘗試的方法以及遇到的問題。
1) 重定向301
Redirect 301 /folder1/folder2/page http://site.com/folder1/folder2/Page
此重定向有效,問題是,我從“頁面”獲取變量顯示在URL的末尾,這對SEO不利:
http://site.com/folder1/folder2/Page?get=page
2) RewriteRule
mod_rewrite的RewriteRule應該可以解決出現“獲取變量”的問題(根據我的閱讀)。
問題是,我沒有讓它適用於我的Fancy URL結構。
RewriteRule ^/folder1/folder2/page$ http://site.com/folder1/folder2/Page [R=301,L]
它根本不起作用。 重定向未執行,因此這里一定有問題。 我嘗試了該代碼的許多變體。
您不能直接在友好URL上使用RewriteRule嗎?
(友好的URL表示我剝離了.php擴展名)
期待有所幫助! 謝謝!
更新1:
請注意,此處不區分大小寫。
即使我的示例是: Page1 => Page 2
代替: page => Page
問題仍然存在。
更新2:
這是到目前為止我得到的最接近的解決方案(但還沒有找到):
Redirect 301 /folder1/folder2/page http://site.com/folder1/folder2/Page?
我加了一個“?” 在末尾。
這將為我提供以下目標網址: http : //site.com/folder1/folder2/Page ?
它刪除了“獲取變量”,但仍不如我希望的那樣對SEO友好。
在第二種情況下,如果要在htaccess文件中添加重寫規則,則不應將前導斜杠與之匹配。
嘗試:
RewriteRule ^folder1/folder2/page$ http://site.com/folder1/folder2/Page [R=301,L]
你為什么問? 好問題!
我不能說我對這里的問題很清楚:您是要讓大寫規則匹配還是要丟失任何查詢字符串? 都?
如果是大寫字母,我認為該規則可以刪除(正確的錯別字Rajesh和hakre呼出)。 是否希望刪除查詢字符串並嘗試添加結尾? 到規則的后半部分。 它看起來像:
RewriteRule ^folder1/folder2/page$ http://site.com/folder1/folder2/Page? [R=301,L]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.