2016-08-25 128 views
-1

我最近更改我的主機,我需要一個htaccess重寫規則爲我的文件。我嘗試了很多例子,但沒有人真正爲我的案例工作。我從來沒有在htaccess中表現出色,並且在我的舊主機上我並不需要任何能夠工作的東西,但這不是。基本上我希望我的PHP文件沒有擴展名並且像目錄一樣處理。因此,例如我有一個網址,像這樣的:htaccess友好的URL重寫規則

www.domain.com/file1/{id}/{nick}

因此,例如:

www.domain的.com/myfile1/104 /用戶名

www.domain.com/myotherfile/455/nick

在這種情況下,File1是一個PHP文件,{id}​​和{nick}是可變的。我在我的整個網站上有許多其他PHP文件等結構。因此,如果可能的話,我想所有文件的一個通用規則。我試圖用htaccess刪除PHP擴展等,但我得到的是404錯誤。瀏覽器中的URL也應該保持友好,不需要PHP擴展。所以在我的情況下,如果我手動重寫我的網址: www.domain.com/file1.php/{id}/{nick}它的工作,但我不想改變我的網站上的所有鏈接等。所以我只想隱藏PHP擴展並將PHP文件視爲目錄。

感謝

回答

2

您可以使用網站根目錄的.htaccess這個單一的和通用的前端控制器規則:

AcceptPathInfo On 
DirectoryIndex index.php 

RewriteEngine On 
RewriteBase/

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

感謝。我試過,但我得到了這個:沒有指定輸入文件。當我試圖訪問一個URL如:www.domain.com/file/123/user – StudioArena

+0

這條規則對我的Apache工作正常。在你的網站根目錄下用這個規則測試它.htaccess – anubhava

+0

我在根目錄下的htaccess中只有這個,並且不起作用。這很奇怪,但我現在正在尋找一個解決方案几個小時,沒有任何工作。 – StudioArena