2014-10-27 61 views
1

我想知道如何使用mod rewrite將不具有尾部斜槓的第一級子文件夾重寫爲php文件。重寫沒有結尾斜槓的第一級子文件夾htaccess

例如

/test  -> rewrites to file.php?id=test 
/test/  -> trailing slash so it follows through as normal to /test/ 
/test/test -> second level sub folder so it follows through as normal to /test/test 
/  -> homepage needs to follow through as usual to index.php 

試圖想一個規則,1號線要做到這一點的。對於上面的例子,測試只是一個例子,規則應該重寫任何字符串。

回答

1

您可以在DOCUMENT_ROOT/.htaccess文件中使用此代碼:

RewriteEngine On 
RewriteBase/

RewriteRule ^([^/.]+)$ file.php?id=$1 [L,QSA] 
1

只能通過禁用mod_dir的DirectorySlash來完成此操作。有很多理由要求在目錄上使用尾部斜線,否則即使存在索引文件,也可以看到整個內容。所以這是令人難以置信的風險。

DirectorySlash Off 

RewriteEngine On 

# attempt to add trailing slashes 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^([^/]+)/(.+[^/])$ /$1/$2/ [L,R] 

# route to file.php 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]+)$ /file.php?id=$1 [L] 
相關問題