我用這個簡單的規則來從我的網站的網址中index.php
增加301重定向:我是否需要使用htaccess的時候美化一個URL
RewriteRule ^.*$ ./index.php
這樣http://example.com/index.php/user/me
變得http://example.com/user/me
。
我是否需要添加[R=301]
以避免來自SEO角度的「內容重複」問題?
我用這個簡單的規則來從我的網站的網址中index.php
增加301重定向:我是否需要使用htaccess的時候美化一個URL
RewriteRule ^.*$ ./index.php
這樣http://example.com/index.php/user/me
變得http://example.com/user/me
。
我是否需要添加[R=301]
以避免來自SEO角度的「內容重複」問題?
您可以添加此規則,以避免:
RewriteCond %{THE_REQUEST} \ /index\.php/([^\?\ ]*)
RewriteRule^/%1 [L,R=301]
它會重定向在它與/index.php
到一個沒有提出要求。那麼你已經擁有的規則將在內部重寫index.php。
只需在每一頁上包含link rel =「canonical」href =「http://example.com/並享受:) 閱讀更多在這裏https://support.google.com/webmasters/answer/139066?hl=en
感謝您的回答! 不幸的是,我無法圍繞這個規則(在超過30分鐘的谷歌搜索後)包圍我的頭,具體來說,它是「 REQUEST}',第一行的最後一個'\\'(是一個空格?),最後是第二行的^^ –
@AhmedSaoudi'%{THE_REQUEST}'變量是HTTP的第一行請求,它看起來像這樣:'GET /index.php?something HTTP/1.1'。因此,'''''是匹配第一個空格。他最後的空間我們需要逃離空間,否則apache會認爲他們都是單獨的參數,而不是一個單一的正則表達式。 –
@AhmedSaoudi規則中的「^」只是在那裏匹配「任何東西」。意味着我們不關心URI是什麼,因爲我們已經在'%{THE_REQUEST}'變量中匹配它了 –