2011-12-20 219 views
3

我必須謙虛自己,並要求就一個我認爲我理解的主題提供一些指導。我正在努力解決301重定向問題,並希望沒有專注於這個問題的人能幫助我看清光明。.htaccess重定向到文件

我的域曾經將文件夾用作主要產品目標,即domain.com/prod1,domain.com/prod2等,但最近將目標更改爲.php文件,即domain.com/prod1.php ,domain.com/prod2等。看起來我有問題,因爲我的源和目標具有相同的名稱,並且我選擇了導致重定向循環的通配符。我的正常重定向工作正常,但我一直無法找到將這些不存在的文件夾重定向到各自的php文件的祕密武器。我的最新嘗試如下:

RedirectMatch 301 ^/prod1 http://domain.com/prod1.php 

也許這只是爲時已晚,但我真的可以使用一些幫助,讓(我)理順。謝謝!

回答

2

你可以行的結尾添加到您的匹配的正則表達式:^/prod1(/)?$

+0

我不知道(/)分組是多餘的;) – 2011-12-20 03:21:16

+0

是的,我希望它是那麼簡單。感謝您的快速澄清,所有這一切再次在我瘋狂的大腦中! – Jimmyb 2011-12-20 03:25:37

2

你的正則表達式你的目標(^/prod1比賽/prod1.php)相匹配。所以你可以添加一個終止字符到你的regexp或者使用mod_rewrite和一個條件。

RedirectMatch 301 ^/prod1/?$ http://domain.com/prod1.php 

或者:

RewriteEngine On 
# request doesn't end with ".php" 
RewriteCond %{REQUEST_URI} !\.php$ 
RewriteRule ^([^/]+)/?$ http://domain.com/$1.php [R=301]