2012-02-21 67 views
2

我有一個網頁www.mypage.com,我想將特定網址重定向到另一個不存在的URL。通過.htaccess將URL重定向到自定義網址

例如,我想www.mypage.com/about重定向到www.mypage.com/about-company.php,其中/ about不存在 - 這是我寫的自定義URL。

我沒有動態網址,只想告訴.htaccess「this/CUSTOM_URL redirect to this /URL.php」。

的網址列中,它必須顯示自定義網址

我不知道是否可以做到。我一直在尋找它,我發現的所有方法都是重寫動態網址的方式,以及模式。

一個例子就是Wordpress的永久鏈接,您可以在其中指定每個頁面所需的URL。

回答

3

嘗試添加下列到.htaccess文件在您的網站獲得你要求的工作的具體例子的根目錄:使用www.mypage.com/about訪問www.mypage.com/about-company.php

RewriteEngine on 
RewriteBase/

#if about was requested, server about-company.php 
RewriteRule ^about$ about-company.php [L,NC] 

如果您想要一個更一般的規則,例如www.mypage.com/anything用於訪問 www.mypage.com/anything.php你可以替換上面

RewriteRule ^(\w+)$ $1.php [L,NC] 

或者你可以有所有的請求到該決定顯示哪些頁面一個PHP文件的規則如

RewriteRule ^(\w+)$ index.php?page=$1 [L,NC] 
+0

非常感謝。事實上,似乎我使用的服務器有一些麻煩,因爲我在發佈這個問題之前嘗試過,在另一臺服務器上工作。但是,您的解決方案完美運作。謝謝你的時間! – Unapedra 2012-02-21 19:52:46

1

您正在尋找重寫規則。

一些閱讀上:Apache Rewrite rules

+0

我以前讀過這個。看起來這臺服務器有一些麻煩,因爲我以前嘗試過,現在在另一臺服務器上工作,但不在這臺服務器上。無論如何感謝您的答案! – Unapedra 2012-02-21 19:54:22

0

大廈烏爾裏希Palha的評論,我發現這個工作對我來說是一個.htaccess文件提供替代與蒙重定向到一對夫婦的我自己的.PHP頁面:

Options +FollowSymLinks 
RewriteEngine on 
RewriteBase/
RewriteRule ^(optionOne$|optionOneWithEndingSlash/$|optionTwo$|etCetera/$) ppl/peaceseeker.php [L] [NC] 
RewriteRule ^(donny$|donny/$|donnycallahan$|donnycallahan/$) ppl/donnycallahan.php [L] [NC] 

(我提到這一點是因爲當人們輸入example.com/about/(帶有結尾斜槓)時,Ulrich的解決方案對我造成了一個問題)。

謝謝你,烏爾裏希。如果有人知道如何修改Ulrich的.php-suffix Rule以遞歸地下降到任意數量的目錄,我會很感激評論!

誰都暫時解決誰需要下降到目錄,這個工作對我來說:

RewriteRule ^(\w+)$ $1.php [L,NC] 
RewriteRule ^(\w+)/(\w+)$ $1/$2.php [L,NC] 

第二個命令將處理所有目錄的第一個子目錄在您的網站的根文件夾。

通過在$(每個子級目錄的每個新級別)之前添加更多「/(\ w +)」實例,您可以處理3個級別的子目錄,或者4或5或10,然後添加/ $ 3/$ 3/$ 4,/ $ 3/$ 4/$ 5,或者在規則中的「.php」之前立即需要的任何內容。我只需要2級目錄(現在),所以我對我發佈的內容很滿意;該解決方案非常簡單。

如果可能,我還是喜歡遞歸解決方案。