2015-07-11 34 views
4

我的頁面有2種語言(不久的將來會有3種)。它有內頁這樣的結構:我應該在現有規則中添加什麼RewriteRule來解決這個問題?

domain.com/en/page (where page is page.php in main root) 

和主頁可以通過domain.com訪問或​​

在我的服務器我在主根的所有文件,和一個文件夾命名的文章,其中裏面還有一些其他的文件。

當我訪問像domain.com/en/articles這樣的文件夾索引索引時就沒問題。

但是當我像domain.com/articles那樣訪問它時,我需要404頁面。

我該如何在沒有/en//el/的前面打開該文件夾?

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

RewriteRule ^(en|el)/articles$ articles/index.php?lang=$1 [NC] 

RewriteRule ^(en|el)(/)?$ index.php?lang=$1 [NC,L] 

RewriteRule ^(en|el)/(.*)?$ $2.php?lang=$1 [NC,L] 

RewriteRule ^([^\.]+)$ $1.php [NC,L] 

此外,因爲我是新的htaccess請看看我的整體代碼,並告訴我任何改進。

回答

1

你可以有這樣的規則:

RewriteRule ^articles/?$ articles/index.php [NC,L] 

RewriteRule ^(en|el)/articles$ articles/index.php?lang=$1 [NC,L,QSA] 

RewriteRule ^(en|el)/?$ index.php?lang=$1 [NC,L,QSA] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(en|el)/(.+)$ $2.php?lang=$1 [NC,L,QSA] 
+0

那裏嗨,它的工作原理,謝謝!一個問題。如果我訪問domain.com/articles,它會顯示一個斜線,這是因爲它是一個文件夾嗎? – EnexoOnoma

+0

是的,這是正確的。 'mod_dir'模塊在目錄前添加一個尾部斜線。 – anubhava