2008-12-22 95 views
1

在我的Joomla網站上,我添加了一些相當直接的RewriteRules到我的.htaccess文件。他們都是這樣的一對一規則,因爲我正在改變網站的文件結構,不想破壞我的舊鏈接。幫助mod_rewrite和Joomla

RewriteRule ^content/view/54/48/$ /courses [R] 

這些都是除了來包裝與Joomla現有的規則:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !^/index.php 
RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$ [NC] 
RewriteRule (.*) index.php 
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L] 

如果我註釋掉現有的Joomla規則,那麼我可以看到我的規則是否工作正常,當我鍵入http://example.com/content/view/54/48/我的瀏覽器地址欄更改爲http://example.com/courses,但是如果我離開其他規則,那麼Joomla不知道如何處理它(它會給出「未知組件錯誤」)。如果我直接輸入http://example.com/courses,那麼它按預期工作,所以我覺得這是我的重寫問題,而不是Joomla。

我認爲RewriteRules是依次相互作用的。例如:

RewriteRule a b 
RewriteRule b c # a request for "a" will take you to "c" 

我在共享主機,所以不幸我無法打開登錄。有人對我有任何建議嗎?

回答

4

嘗試在你的規則[R,L]改變[R] ...

+2

也許有些人會從知道[L]表示「最後規則」中受益,並會從執行時停止的Joomla規則這條規則已經啓動了。 – PEZ 2008-12-22 18:38:44