2015-10-13 64 views
1

我用這個簡單的規則來從我的網站的網址中index.php增加301重定向:我是否需要使用htaccess的時候美化一個URL

RewriteRule ^.*$ ./index.php 

這樣http://example.com/index.php/user/me變得http://example.com/user/me

我是否需要添加[R=301]以避免來自SEO角度的「內容重複」問題?

回答

1

您可以添加此規則,以避免:

RewriteCond %{THE_REQUEST} \ /index\.php/([^\?\ ]*) 
RewriteRule^/%1 [L,R=301] 

它會重定向在它與/index.php到一個沒有提出要求。那麼你已經擁有的規則將在內部重寫index.php。

+0

感謝您的回答! 不幸的是,我無法圍繞這個規則(在超過30分鐘的谷歌搜索後)包圍我的頭,具體來說,它是「 REQUEST}',第一行的最後一個'\\'(是一個空格?),最後是第二行的^^ –

+0

@AhmedSaoudi'%{THE_REQUEST}'變量是HTTP的第一行請求,它看起來像這樣:'GET /index.php?something HTTP/1.1'。因此,'''''是匹配第一個空格。他最後的空間我們需要逃離空間,否則apache會認爲他們都是單獨的參數,而不是一個單一的正則表達式。 –

+0

@AhmedSaoudi規則中的「^」只是在那裏匹配「任何東西」。意味着我們不關心URI是什麼,因爲我們已經在'%{THE_REQUEST}'變量中匹配它了 –

相關問題