iT邦幫忙

0

關於apache的url rewrite功能出現的404 bad request

大家好 :

當我輸入網址內容

http://www.linrpt.tw/news_info/t/%E5%AE%89%E7%A5%96%E5%85%88%E7%89%8C%E4%BD%8D/

就出現404 bad request

想請問我哪裡還有設定錯誤,還是正規表示式內容有誤?

這是.htaccess檔案內的內容

<IfModule mod_rewrite.c>
     RewriteEngine on
     RewriteCond %{QUERY_STRING} ^(.*)$
     RewriteRule /t/(.*)/ news_info.php?t=$1
</IfModule>

這是我原網址的內容

http://www.linrpt.tw/news_info.php?t=%E5%AE%89%E7%A5%96%E5%85%88%E7%89%8C%E4%BD%8D

想轉成....

http://www.linrpt.tw/news_info/t/%E5%AE%89%E7%A5%96%E5%85%88%E7%89%8C%E4%BD%8D/

Server上的設定我都有先設定好了,例如...
AllowOverride None 改成 AllowOverride All
rewrite模組有開起來了

作業系統是 CentOS6.5

謝謝大家~

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

6
wiseguy
iT邦超人 1 級 ‧ 2014-03-27 18:03:04
最佳解答

把第三行去掉,第四行改為

<pre class="c" name="code">RewriteRule /news_info/t/(.*)/ /news_info.php?t=$1
看更多先前的回應...收起先前的回應...
Rick Hsu iT邦新手 4 級 ‧ 2014-03-27 18:33:17 檢舉

另外我還有問題...我有把url rewrite語法修正成您的,但是問題是...若我把語法放在.htaccess的話是無法執行rewrite功能....但是若我放在<VirtualHost></VirtualHost>內...就會正常執行...是說我的.htaccess哪裡有誤...

.htaccess編碼是ANSI as UTF-8 (我用NOTE++改的)

Rick Hsu iT邦新手 4 級 ‧ 2014-03-27 18:39:22 檢舉

若我放在<virtualHost></virtualHost>內語法可以正常執行,我放在.htaccess就沒辦法正常執行。目前我是把rewrite語法放在<virtualHost></virtualHost>內。

[
http://www.linrpt.tw/news_info/t/%E6%99%AE%E5%B7%B4%E9%87%91%E5%89%9B%E9%99%A4%E9%9A%9C%E9%A6%99%E5%8C%85/
](<br />
http://www.linrpt.tw/news_info/t/%E6%99%AE%E5%B7%B4%E9%87%91%E5%89%9B%E9%99%A4%E9%9A%9C%E9%A6%99%E5%8C%85/<br />
)

wiseguy iT邦超人 1 級 ‧ 2014-03-28 07:15:08 檢舉

AllowOverride All
這個指令要放在 <virtualHost></virtualHost>內,並且是 document_root 的目錄中 ( <Document> 或 <Location>),才會有作用。

Rick Hsu iT邦新手 4 級 ‧ 2014-03-28 15:16:54 檢舉

您好 :

我的設定是長這樣...還是無法讀取.htaccess檔案...

&lt;pre class="c" name="code">
&lt;VirtualHost *:80>
   ServerName www.linrpt.tw
   DocumentRoot /目錄1/目錄2/目錄3
   AccessFileName .htaccess
   &lt;Directory "/目錄1/目錄2/目錄3">
       Options FollowSymLinks
       AllowOverride All
       Order allow,deny
       Allow from all
   &lt;/Directory>   
&lt;/VirtualHost>

我要發表回答

立即登入回答