2016-12-21 95 views
1

中的所有內容我需要在需要的地方接收傳入的url並在不更改url的情況下從根目錄提供它們。.htaccess服務於根目錄

因此,如果有人類型: http://example.com/randomdirectory/page.html

它會得到滿足了

http://example.com/page.html但是URL不會改變。

我覺得我接近以下內容,但是當URL以斜線結尾時失敗;我想爲索引服務。

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)\/([^.]+.html) /$2 [L] 

從本質上講,我只是想在服務於相同的文件(在根目錄)無論什麼類型的用戶

回答

1

您可以使用此規則代替:

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.+)/(.*)$ /$2 [L] 
+1

它完美。非常感謝你。如果你有時間,並且不介意,你能否解釋規則的哪些部分在做什麼? – gin93r

+1

'(。+)/'匹配URL中所有的最後一個'/','(。*)'匹配最後一部分。然後,我們使用'/ $ 2'作爲第二個捕獲組的後向引用,'$ 2'前面的'/'確保將其路由到網站的根目錄。 – anubhava

+1

我查了一下。我很好奇「(。+)」在做什麼。我是如此親密的人。再次感謝@anubhava。 – gin93r