2014-02-07 144 views
1

我試圖從我的網址中移除.php,並在末尾添加尾部斜線。我的.php清除工作正常,但我努力使尾部斜線工作。.htaccess刪除.php並添加尾部斜槓

這裏是我到目前爲止有:

# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

## hide .php extension snippet 

# To externally redirect /dir/foo.php to /dir/foo 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC] 
RewriteRule^%1 [R,L] 

# To internally forward /dir/foo to /dir/foo.php 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.*?)/?$ $1.php [L] 

提前感謝!

+0

請詳細說明*獲得最後的斜線工作*。您在瀏覽器中請求什麼網址?它是如何處理的?你想如何處理它? – Oswald

回答

3

首先代碼和註釋看起來很熟悉:)

使用此代碼:

RewriteEngine On 
RewriteBase/

## hide .php extension snippet 

# To externally redirect /dir/foo.php to /dir/foo 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC] 
RewriteRule^%1/ [R,L] 

# add a trailing slash  
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !/$ 
RewriteRule . %{REQUEST_URI}/ [L,R=301] 

# To internally forward /dir/foo to /dir/foo.php 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.*?)/?$ $1.php [L] 
+1

太棒了!謝謝你:) – Charles

+0

Anubhava我不假設你知道我可以如何使.php作爲非.php重定向工作的301作品嗎?目前,這是一個302,它不是理想的搜索引擎優化,如果我們有任何鏈接去.php版本的網址。 – Charles

+0

只需更改第一條規則即可擁有此標誌:'[R = 301,L]'和SEO將被照顧。 – anubhava

相關問題