2014-02-26 56 views
1

我需要從我的網站上的所有網址中刪除.php,如果有人輸入完整的網址,它需要重定向到php-extension-free版本。例如:如何從所有網址中刪除.php而沒有結尾的斜槓?

website.com/about.php -> website.com/about 

我需要做的這是搜索引擎友好的方式成爲可能,所以我猜這將是一個301重定向,以便谷歌和其他人知道該頁面在新的PHP的新位置-extension-free URL。任何DUP的內容也必須要避免的,所以這是很重要的頁面是不是在新舊和URL訪問,這是,如果我所做的只是一個簡單的會發生什麼:

RewriteRule about about.php [L] 

我我們已經看到了許多.htaccess方法,但它們似乎都爲URL添加了一個斜線。重要的是,這不會發生。

此外,我有一個明確的HTTPS重定向發生幾頁,我需要確保我不創建一個重定向循環。以下是當前將這些網頁重定向到HTTPS的代碼。

RewriteCond %{HTTPS} off 
RewriteRule ^(quote|quote_2).php$ https://website.com/$1.php [R=301,L,QSA] 
RewriteCond %{HTTPS} on 
RewriteCond %{REQUEST_URI} !^/(quote|quote_2).php 
RewriteCond %{REQUEST_URI} !^/(.*)\.(css|png|js|jpe?g|gif|bmp|woff|svg|map)$ 
RewriteRule ^(.*)$ http://website.com/$1 [R=301,L,QSA] 
+1

我沒有在這裏看到的問題。如果你需要它,僱用一名程序員 – kero

+0

這個問題是一個明確的問題,並且類似於本網站上大多數其他問題。我需要一個特定的期望行爲,併發布了我目前使用的代碼,但未能產生上述行爲。 – Jeremy

+0

通常問題以'?'結尾。 – NobleUplift

回答

1

你可以在你的根的.htaccess使用此代碼:

RewriteEngine On 

RewriteCond %{THE_REQUEST} \s/+(?:index)?(.*?)\.php[\s?] [NC] 
RewriteRule^/%1 [R=301,L,NE] 

RewriteCond %{HTTPS} off 
RewriteRule ^(quote|quote_2)/?$ https://%{HTTP_HOST}/$1 [R=301,L] 

RewriteCond %{HTTPS} on 
RewriteCond %{REQUEST_URI} !^/(quote|quote_2) 
RewriteCond %{REQUEST_URI} !\.(css|png|js|jpe?g|gif|bmp|woff|svg|map)$ 
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{DOCUMENT_ROOT}/$1.php -f [NC] 
RewriteRule ^(.+?)/?$ /$1.php [L] 
+0

太好了,謝謝!另一個簡單的問題是:我明確地將幾個特定的​​頁面重定向到https,並且在與上述結合時導致重定向循環。這是我的代碼:'RewriteCond%{HTTPS} off RewriteRule ^(quote | quote_2).php $ https://lawnlove.com/$1.php [R = 301,L,QSA] RewriteCond%{HTTPS} RewriteCond%{REQUEST_URI}!^ /(quote | quote_2).php RewriteCond%{REQUEST_URI}!^ /(。*)\。(css | png | js | jpe?g | gif | bmp | woff | svg | map)$ RewriteRule ^(。*)$ http://lawnlove.com/$1 [R = 301,L,QSA]' – Jeremy

+0

難以閱讀評論中的代碼,你可以在你的問題中發佈它編輯它。 – anubhava

+0

當然,我只是更新它。 – Jeremy

0

下面的答案可以發現here

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^\.]+)$ $1.php [NC,L] 
相關問題