2016-12-06 96 views
0

所以我有「好」的網址:的.htaccess:背後漂亮的搜索引擎友好的URL隱藏php文件

RewriteRule ^(.*)/$ page.php?data=$1 [L] 

的問題是,page.php取,site.com/page.php?data=xxx將顯示site.com/xxx/

重複的內容我想防止,但如果我做任何RedirectRewriteRule即使在漂亮的網址RewriteRule之前,它會影響/使文件無法訪問,即使在漂亮的url後面。

有什麼辦法嗎?

我可以將page.php更改爲罕見的文件名,並在發現併發布的情況下,添加html canonical urls,但我想正確地做。

+0

嘗試尋找到PHP路由系統,或一般的PHP框架,像laravel – Grey

回答

1

你的第一個RewriteCond前補充一點:

# external redirect from actual URL to pretty one 
RewriteCond %{THE_REQUEST} \s/+page\.php\?data=([^\s&]+) [NC] 
RewriteRule^/%1/? [R=301,L,NE] 
+0

好吧,我不希望這個重定向到URL不錯,我想「隱藏」這些文件,加上我有一些不同的漂亮的網址,這將是一個不必要的大文件。 戰鬥過一會兒之後我得到了這個工作:。 '的RewriteCond%{} THE_REQUEST^* \ PHP [NC] 重寫規則^ 404.html [R = 302,L]' 但是我有一個非常小問題,它維護任何GET數據,所有後?。沒有太大的問題,但我怎樣才能使它成爲一個乾淨的404.hml網址? – Vixxs

+0

明白了。我遇到了困難,因爲我正在研究一個子文件夾,我不知道在哪裏添加它。 'RewriteCond%{THE_REQUEST} \ s/page \ .php [NC] RewriteRule^404.html? [R = 302,L]' – Vixxs

+0

@Vixxs不要外部重定向到404,內部重寫並在404文件中設置狀態標題。 – Walf