LifeType 中文開發論壇

支援 => 安裝與設定 => 主題作者是: catseyes 於 二月 15, 2006, 09:52:34 下午



主題: 是否有辦法改寫 Apache ModRewrite 的網址格式!?!?
作者: catseyes二月 15, 2006, 09:52:34 下午
既然沒辦法使用簡潔網址...想換個方式做看看....

目前在 24cc.com 上面是可以使用 Apache ModRewrite 的網址格式.....

那麼想請問各位先進是否有辦法改寫 Apache ModRewrite 成簡潔網址的模樣呢!?

又若可以的話要修改哪些檔案呢!?


主題: Re: 是否有辦法改寫 Apache ModRewrite 的網址格式!?!?
作者: ajer001二月 15, 2006, 10:27:49 下午
你要不要考慮看看用lss的hack?
看起來也是好看很多,呵呵。

而且目前應該是沒有問題了


主題: Re: 是否有辦法改寫 Apache ModRewrite 的網址格式!?!?
作者: lss二月 15, 2006, 10:38:30 下午
我個人是不建議啦!

因為 Oscar 只說要用,但沒說要用那一個?而且要怎麼用還不知道?萬一 catseyes 猜錯了,結果未來 lt 1.1 的 request parser 不認得這些網址,那多冤啊!

要我建議的話,先用一般網址頂著用,並連絡 24cc.com 的客服看看是怎麼回事?能不能解決?如果真的不能用簡潔網址,而你又很堅持要用的話,考慮看看要不要在鑑賞期內趕緊退貨換家代理主機。

lss


主題: Re: 是否有辦法改寫 Apache ModRewrite 的網址格式!?!?
作者: catseyes二月 16, 2006, 07:52:34 上午
凹嗚~我有用過lss老師的 HACK 啦....是很不錯用...
只是想要在不使用任何附掛程式的情況下完成比較簡潔有力的網址....
況且要換主機的話...很難找到與24cc一樣便宜速度又快又有台灣客服的主機....
((24cc 也是剛好碰到大特價才去買下來的...速度跟DreamHost真的差太多了))

目前感覺起來只有那些沒有副檔名的檔案沒有讀取權限...
如果使用自定網址的話...網址內如果含有 "post" 或者是 "album" 這些額外字眼都沒辦法用...
如果文章單純使用 "http://my-domain.com.tw/網誌ID/文章ID/年/月/日/" 這種格式就可以用

但是如果設定成 "http://my-domain.com.tw/網誌ID/post/文章ID" 這樣...多了個post就不行
但是如果使用 Apache ModRewrite 的話...網址內有 "post" 或是 "album" 這些字眼又可以使用...
真的是怪到不行!!所以才會想問問是不是能夠改寫 Apache ModRewrite 的網址格式....
問題好像就出在無法讀取這些字眼的介系檔案....但是權限問題在哪還是搞不懂.....


主題: Re: 是否有辦法改寫 Apache ModRewrite 的網址格式!?!?
作者: lss二月 16, 2006, 08:40:06 上午
凹嗚~我有用過lss老師的 HACK 啦....是很不錯用...
只是想要在不使用任何附掛程式的情況下完成比較簡潔有力的網址....
對於正式提供服務的主機,我非常贊同這個觀點! :-)
況且要換主機的話...很難找到與24cc一樣便宜速度又快又有台灣客服的主機....
((24cc 也是剛好碰到大特價才去買下來的...速度跟DreamHost真的差太多了))

目前感覺起來只有那些沒有副檔名的檔案沒有讀取權限...
如果使用自定網址的話...網址內如果含有 "post" 或者是 "album" 這些額外字眼都沒辦法用...
如果文章單純使用 "http://my-domain.com.tw/網誌ID/文章ID/年/月/日/" 這種格式就可以用

但是如果設定成 "http://my-domain.com.tw/網誌ID/post/文章ID" 這樣...多了個post就不行
但是如果使用 Apache ModRewrite 的話...網址內有 "post" 或是 "album" 這些字眼又可以使用...
真的是怪到不行!!所以才會想問問是不是能夠改寫 Apache ModRewrite 的網址格式....
問題好像就出在無法讀取這些字眼的介系檔案....但是權限問題在哪還是搞不懂.....
有客服就要好好用啊!順便幫我們試試這家的客服品質和水準如何?

lss


主題: Re: 是否有辦法改寫 Apache ModRewrite 的網址格式!?!?
作者: catseyes二月 22, 2006, 09:51:40 下午
目前工程人員正在與我的租用的主機搏鬥中 =.= 有點搞不懂他們在搏鬥甚麼......
((感覺起來要能使用簡潔網址的話應該簡單的設定就好了 =.= 還是他們的工程人員太笨!?))

不過目前客服人員承諾在幾天之後如果沒辦法弄到讓我使用簡潔網址而我又非常堅持使用簡潔網址的話要讓我全額退費,但是我有點不太想換主機,畢竟這種速度又便宜的主機真的不多,所以我還是想要問問是否有另外一條路,就是修改 Apache ModRewrite 讓他的網址與簡潔網址相同!?

目前在 Apache ModRewrite 的網址,通常都是:
http://xxx.xxx.xxx/1_user/

是否有辦法把 Apache ModRewrite 的網址模式修改成 http://xxx.xxx.xxx/blogID/
在其他的分類中他幾乎都是使用 "Name"來做網址改寫的動作,是否有辦法把Name改成ID Number呢!?這個問題可能會很麻煩吧((最大的麻煩可能是我自己貪圖這個高速又便宜的主機吧 XD~))!!不知道是否可行呢!?


主題: Re: 是否有辦法改寫 Apache ModRewrite 的網址格式!?!?
作者: lss二月 22, 2006, 10:12:02 下午
....
是否有辦法把 Apache ModRewrite 的網址模式修改成 http://xxx.xxx.xxx/blogID/
在其他的分類中他幾乎都是使用 "Name"來做網址改寫的動作,是否有辦法把Name改成ID Number呢!?這個問題可能會很麻煩吧((最大的麻煩可能是我自己貪圖這個高速又便宜的主機吧 XD~))!!不知道是否可行呢!?
仔細想想,好像改寫 .htaccess 裡的 RewriteRule 成為簡潔網址的模樣,應該就可以了吧?!
LT 全域設定仍然使用「簡潔模式」,只是每條 RewriteRule 都要重新改寫。
例如:
引用
# Permalink to the blog entry (i.e. /plog/1_userfoo/archive/3_title-foo-bar.html)
RewriteRule ^([0-9]+)_[^/]+/archive/([0-9]+)_[^.]+\.html$ index.php?op=ViewArticle&blogId=$1&articleId=$2 [L,NC]
好像要改寫成
引用
# Permalink to the blog entry (i.e. /plog/post/1/2)
RewriteRule ^post/([0-9]+)/([0-9]+)$ index.php?op=ViewArticle&blogId=$1&articleId=$2 [L,NC]
大概還蠻好改的,因為簡潔網址都是用 id 來處理網址。你試試看囉!
如果改好了,記得來分享哦! ;-)

lss


主題: Re: 是否有辦法改寫 Apache ModRewrite 的網址格式!?!?
作者: catseyes二月 24, 2006, 06:03:39 上午
Warning: Smarty error: unable to read resource: "fdawnwithplugins/archive/125_eueoe.html.template" in /home/catseyes/public_html/blog/class/template/smarty/Smarty.class.php on line 1108

試改了第一行出現了以上錯誤...而且網址模式也沒有變動 , 還是跟原來的 Apache ModRewrite 一樣呢!!我想要改寫 Apache ModRewrite 不光是要改 .htaccess 吧 ~___~ 應該還有其他東西要改...
相關的對應參數也不是很了解...照LSS老師的示範....大概只能知道
([0-9]+) => 對應 blog ID
[^/] => 對應 username
([0-9]+)$ index.php?op=ViewArticle&blogId=$1&articleId=$2 => 對應文章編號
看來還要先找出其他對應的參數才行....接著才是尋找修改哪些檔案....

頗感謝LSS老師的教導 ^^ 我在尋找一下其他相對應的參數值!!
目前網誌可以使用自訂網址了((24cc.com找出無法使用自訂網址的原因幫我解決了...簡潔網址無法使用的問題還正在查))所以暫時換成自訂網址頂著用......但是自訂網址只要碰到 "POST" 這個字眼就會葛屁 =.= 跟簡潔網址一樣...又不知道是哪裡出問題((24cc.com也還在尋找問題中)).....

網址參數的對應我再找找...或者wiki有資料能查呢!?我在去找找吧 ^^


主題: Re: 是否有辦法改寫 Apache ModRewrite 的網址格式!?!?
作者: lss二月 24, 2006, 09:18:05 上午
後來才想到的,遇到檔案中心裡有中文的檔名時,可能還是會有問題,因為 pathinfo 和 request 的編碼方式是不一樣的,只要網址裡面有用到中文檔名時,應該會掛掉  :-(

最近有點忙,找到時間再試試看。

lss


主題: Re: 是否有辦法改寫 Apache ModRewrite 的網址格式!?!?
作者: lss二月 24, 2006, 04:35:01 下午
我試出來了,竟然都可以, :-D

晚點整理好後發佈 :-)

lss


主題: Re: 是否有辦法改寫 Apache ModRewrite 的網址格式!?!?
作者: lss二月 24, 2006, 05:32:50 下午
暫時沒空寫什麼東西,直接貼出來吧。後面就交給你了, catseyes !

把下面這段置換掉 .htaccess 裡面的相同部份應該就可以了。記得按自己的安裝路徑修改 RewriteBase 。

程式碼:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /lifetype/

# ok:Permalink to the blog entry (i.e. /lifetype/post/{blogId}/{ArticleId})
RewriteRule ^post/([0-9]+)/([0-9]+)$ index.php?op=ViewArticle&blogId=$1&articleId=$2 [L,NC]

# ok:Monthly archive (i.e. /lifetype/archives/{blogId}/{yyyymm})
RewriteRule ^archives/([0-9]+)/([0-9]{6})$ index.php?blogId=$1&Date=$2 [L,NC]

# ok:Daily archive (i.e. /lifetype/archives/{blogId}/{yyyymmdd})
RewriteRule ^archives/([0-9]+)/([0-9]{8})$ index.php?blogId=$1&Date=$2 [L,NC]

# ok:Album (i.e. /lifetype/album/{blogId}/{albumId})
RewriteRule ^album/([0-9]+)/([0-9]+)$ index.php?op=ViewAlbum&blogId=$1&albumId=$2 [L,NC]

# ok:Albums (i.e. /lifetype/album/{blogId}/0) ,用上一個規則即可
#RewriteRule ^([0-9]+)_[^/]+/album/$ index.php?op=ViewAlbum&blogId=$1&albumId=0 [L,NC]

# ok:Category view (i.e. /lifetype/category/{blogId}/{categoryId})
RewriteRule ^category/([0-9]+)/([0-9]+)$ index.php?blogId=$1&postCategoryId=$2 [L,NC]

# ok:Category-Feeds (i.e. /lifetype/rss/{blogId}/{categoryId})
RewriteRule ^rss/([0-9]+)/([0-9]+)$ rss.php?blogId=$1&categoryId=$2 [L,NC]

# ok:Category-Feeds with profile (i.e. /lifetype/rss/{profile}/{blogId}/{categoryId})
RewriteRule ^rss/(.*)/([0-9]+)/([0-9]+)$ rss.php?blogId=$2&categoryId=$3&profile=$1 [L,NC]

# ok:Feeds (i.e. /lifetype/rss/{profile}/{blogId})
RewriteRule ^rss/(.*)/([0-9]+)$ rss.php?blogId=$2&profile=$1 [L,NC]

# ok:Trackbacks (i.e. /lifetype/trackbacks/{blogId}/{articleId})
RewriteRule ^trackbacks/([0-9]+)/([0-9]+)$ index.php?op=Trackbacks&blogId=$1&articleId=$2 [L,NC]

# ok:Comment form (i.e. /lifetype/comment/{blogId}/{articleId})
RewriteRule ^comment/([0-9]+)/([0-9]+)$ index.php?op=Comment&blogId=$1&articleId=$2 [L,NC]

# ok:Resources (i.e. /lifetype/resource/{blogId}/{resourceId})
RewriteRule ^resource/([0-9]+)/([0-9]+)$ index.php?op=ViewResource&blogId=$1&resId=$2 [L,NC]

# 英文檔名ok,:中文檔名竟然可以ok:Download a resource (i.e. /lifetype/get/{blogId}/{resourceFilename})
RewriteRule ^get/([0-9]+)/(.+)$ resserver.php?blogId=$1&resource=$2 [L,NC]

# ok:Static Pages (i.e /lifetype/static/{blogId}/{templateFile})
RewriteRule ^static/([0-9]+)/(.+)$ index.php?op=Template&blogId=$1&show=$2 [NC]

# ok:A non-default blog (i.e. /lifetype/{blogId})
RewriteRule ^([0-9]+)$ index.php?blogId=$1 [L,NC]


</IfModule>
就這樣啦!

lss


主題: Re: 是否有辦法改寫 Apache ModRewrite 的網址格式!?!?
作者: markwu二月 24, 2006, 08:42:25 下午
目前工程人員正在與我的租用的主機搏鬥中 =.= 有點搞不懂他們在搏鬥甚麼......
((感覺起來要能使用簡潔網址的話應該簡單的設定就好了 =.= 還是他們的工程人員太笨!?))

Hi cateyes:

盲目 debug 是不會成的啦!你要先問他們的 Apache 的版本。

要用簡潔網址必須用到 ForceType,要用自訂網制要用到 ErrorDocument。

ForceType:在Apache 1.x 必須安裝 mod_mime 才有。在 Apache 2.0 後,已經成為核心內定功能。
ErrorDocument:在 Apache 1.1後,已經成為核心內定功能。

把我說的這一段給他們看,希望他們能瞭解。

這兩個功能如果都有,那麼簡潔網址與自訂網址都可以用。

Mark


主題: Re: 是否有辦法改寫 Apache ModRewrite 的網址格式!?!?
作者: lss二月 24, 2006, 09:25:26 下午
要用簡潔網址必須用到 ForceType,要用自訂網制要用到 ErrorDocument。
簡潔網址也會用到 ErrorDocument ,只用在 blog 網址。


主題: Re: 是否有辦法改寫 Apache ModRewrite 的網址格式!?!?
作者: catseyes二月 25, 2006, 01:13:17 上午
詭異的地方來了.....

上傳之後....使用 Apache ReWrite =.= 網址模式跟原本的 Apache ReWrite 網址魔是一模一樣

也就是說完全沒有變動....24cc.com 也算是怪主機了吧 >.<