2011-04-07 69 views
0

我需要一個手重寫一些網址。 我需要的是從url中刪除文件夾名稱,並刪除php文件擴展名。 例子:htaccess重寫刪除父目錄和PHP擴展

我需要mysite.com/foldername/about.php 成爲 mysite.com/about/

我必須說,我有一個需要從 mysite.com/filename/ 而不是 mysite.com/foldername/filename.php

訪問預先感謝您幾個PHP的靜態文件爲你的時間。

親切的問候。

回答

0
RewriteEngine On 
RewriteRule ^/[.*]/?$ foldername/$1.php#{QUERY_STRING} [NC,L] 

如果你不使用QUERY_STRING(即你有沒有$ _GET參數),那麼你可以刪除#{QUERY_STRING}

注意,這會在你的根重寫一切文件夾名稱/姓名。 PHP

如果要排除某些路徑(如CSS,JS文件等),我建議你這樣做:

RewriteCond RewriteCond %{REQUEST_URI} !^*.css$ 
RewriteCond RewriteCond %{REQUEST_URI} !^*.js$ 
RewriteCond RewriteCond %{REQUEST_URI} !^*.php$ 
RewriteCond RewriteCond %{REQUEST_URI} !^*DONTREDIRECT*$ 
RewriteRule ^/[.*]/?$ foldername/$1.php#{QUERY_STRING} [NC,L] 
+0

感謝Gazler,有什麼辦法可以每個文件的基礎上而不是做這個正則表達式? 因爲我仍然有一些php文件需要作爲文件夾名/ filename.php – user684511 2011-04-07 20:02:45

+0

訪問當然,你可以使用RewriteCode(我會推薦)排除它們,或者你可以這樣做:RewriteRule ^/about /?$ foldername/about .php#{QUERY_STRING} [NC,L] – Gazler 2011-04-07 20:04:34