2015-10-22 47 views
0

我們遇到問題。傢伙。也許有人處理這樣的事情。任何幫助都感激不盡。如何通過使用htacces刪除尾部斜槓

我們決定創建一個新網站。我們製作的每個網頁都存儲在服務器上,如下所示:「example.php」 但是,我們不希望我們的每個網址看起來像:「company.com/example.php」,所以 我們將此代碼添加到.htcaccess,標記爲「#cut url」:

RewriteEngine on 
# cut url 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^\.]+)$ $1.php [NC,L] 
# remove trailing slash 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)/$ /$1 [L,R=301] 

完美地工作。刪除「.php」部分。

但是有一個問題。我們網站以前的版本使用wordpress,因此每個鏈接都可以在互聯網上找到並導向我們公司的網站,包括過去的博客文章在每個網址的末尾都有一個斜槓,即「company.com/stuff/ 「,我們複製了新博客的內容,因此每個條目都看起來像」company.com/stuff.php「,通過使用上面指定的代碼,我們設法刪除了」.php「部分。所以每當有人訪問博客條目時,他會看到「company.com/stuff」,這就是問題所在。

我們希望在.htcaccess中添加一些可以幫助我們重定向舊網址的內容,包括Google索引的內容。 因此,如果任何人在最後發現任何我們的舊鏈接斜線,並點擊它將自動重定向到博客條目與我們的新網站相同的內容。因此,假設他點擊「company.com/stuff/」,它會自動將其轉到「company.com/stuff」(實際上是「company.com/stuff.php」,但上述代碼會刪除「php」部分。 )

而且我們不知道該怎麼做。我們一直在努力尋找解決方案,一些人提出了一段代碼,它刪除了尾部的斜線,但它不起作用,我把它放在這裏,它被標記爲「刪除尾部斜線」。

請,也許有人有一個解決方案。 我們有獨立的PHP,沒有框架。

+0

首先,你的第一條規則將匹配所有不是空的,所以你的第二條規則永遠不會觸發。如果你先放置第二條規則,它會起作用嗎? – Halcyon

+0

有沒有想過用php做一個Dispatcher? – inetphantom

+0

@Halcyon你真了不起:)))它的作品!!!!! :D – relaw

回答

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

您可能還想在其中添加R = 301標誌,但我不確定 - 這取決於您。

+0

對不起,它不工作:( – relaw