iT邦幫忙

0

.htaccess設定問題

大家好,我有一個設定問題,
我想將
http://www.ooo.com/view.php?id=華碩 ,轉成 http://www.ooo.com/華碩
http://www.ooo.com/view.php?id=宏碁 ,轉成 http://www.ooo.com/宏碁
...依此類推。
我目前的設定如下:
RewriteRule ^(.*)/$ view.php?id=$1 [L]
但這樣設定最後一定要加上/,也就是寫成 http://www.ooo.com/華碩/ ,才可以正確讀到頁面,
請問大家是否有方法可以不加上/ 或加上/ ,都可以正確顯示頁面呢?
非常感謝~~

1 個回答

6
wiseguy
iT邦超人 1 級 ‧ 2012-01-10 11:53:15
最佳解答

RewriteRule ^/([^/]+)/?$ view.php?id=$1 [L]

看更多先前的回應...收起先前的回應...
x2050100 iT邦新手 5 級 ‧ 2012-01-10 23:11:44 檢舉

謝謝您的回覆,
但我改過後,變成有加/ 和沒加/ 都無法正確顯示網頁。
也就是 http://www.ooo.com/華碩/http://www.ooo.com/華碩 都無法正確顯示了。

wiseguy iT邦超人 1 級 ‧ 2012-01-11 00:14:03 檢舉

我是抄你後面的寫法,發現還真的出錯。
請問你的 view.php 是放在 /華碩/ 與 /宏碁/ 目錄下各一支嗎?如果不是,而是只有一支 view.php 只放在 / 下,那應該要改成
RewriteRule ^/([^/]+)/?$ /view.php?id=$1 [L]
才對。

x2050100 iT邦新手 5 級 ‧ 2012-01-15 17:35:49 檢舉

您好,
/華碩/ 與 /宏碁/ 其實是虛擬的子目錄,實際上是沒有的
view.php 只有一支,是在主目錄/下面,
試過您後來給的方法 RewriteRule ^/([^/]+)/?$ /view.php?id=$1 [L]
但還是變成有加/ 和沒加/ 都無法正確顯示網頁。 >_<...

wiseguy iT邦超人 1 級 ‧ 2012-01-21 00:01:26 檢舉

我用 Firefox 與 IE 都試過,我最後的寫法
RewriteRule ^/([^/]+)/?$ /view.php?id=$1 [L]
是 OK 的。

  1. 你有重跑 apache 嗎
  2. 你有清掉 cache 再 reload 嗎
  3. 其實不建議用中文當 URL。因為每個人電腦中的瀏覽器會把它視為 UTF-8 還是 Big5 送出去,你並不知道。除非你在 apache 的設定中,讓『華碩』不管是 UTF-8 或 big5 都可以連得到。

我要發表回答

立即登入回答