2016-07-19 22 views
0

我定義的URL SEO在.htaccess中每個PHP頁面是這樣的:SEO URL和不存在的URL重定向與的.htaccess

RewriteRule en/english-page1$ page1_en.php [NC,L] 
RewriteRule de/german-page1$ page1_de.php [NC,L] 
RewriteRule en/english-page2$ page2_en.php [NC,L] 
RewriteRule de/german-page2$ page2_de.php [NC,L] 

所以用URL 「www.mysite.com/en/english-page1」頁面「page1_en.php」實際上是正確加載的(我所有的.php文件都在根目錄下,物理上沒有「en」或「de」文件夾)

現在我需要的是定義默認頁面對於「en」和「de」語言,然後將所有不存在的URL重定向到每種語言的默認頁面。

有人可以幫助我嗎?謝謝!

回答

0

對於到N使用1頁:

RewriteRule en/english-page(\d+)$ page$1_en.php [NC,L] 
RewriteRule de/german-page(\d+)$ page$1_de.php [NC,L] 

,並添加底:

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(en|de)/? $1/default-page [R,NC,L] 

隨着en/default-pagede/default-page頁面。

+0

非常感謝您的回答!有用。 我可以自動將結果重定向到最終的URL(「mysite.com/en/english-page1」而不只是「mysite.com/en/」)嗎? 謝謝! –

+0

另一個問題是,我可以在「/ en /」之後添加任何字符串(例如mysite.com/en/asdf),默認頁面已加載,但輸入的錯誤URL仍然可見。我可以強制URL改變爲好的嗎? –

+0

我編輯了我的代碼 – Croises