2015-11-23 35 views
0

這裏的規則:我的.htaccess的rewrite不工作

#RULE REDIRECTQUESTIONSURL9 
RewriteCond %{REQUEST_METHOD} !^POST$ 
RewriteCond %{QUERY_STRING} ^scid=9 
RewriteCond %{THE_REQUEST} questions.php 
RewriteRule ^questions\.php$ /general-knowledge_questions-answers_national-famous-day-0 [R,L,QSD] 

這些類型的鏈接不工作

> http://www.example.com/questions.php?scid=6 
> http://www.example.com/questions.php?scid=8 

回答

1

有跡象表明,馬上想到的兩個問題看你的重寫規則時。

  1. scid=9正在尋找靜態值9。所顯示的URL都不具有該值。
  2. !^POST$您顯示的網址正在發出GET請求。

試試這個:

#RULE REDIRECTQUESTIONSURL9 
    RewriteCond %{REQUEST_METHOD} !^GET$ 
    RewriteCond %{QUERY_STRING} ^scid=\d+ 
    RewriteRule ^questions\.php$ /general-knowledge_questions-answers_national-famous-day-0 [R,L,QSD] 

而且你關心從查詢字符串來的參數?如果不是的話,你可以放棄這個要求。如果是這樣,你應該捕獲它並將其附加到重寫的URL。

你應該改變你的鏈接

action="general-knowledge_questions-answers_national-famous-day-<?php echo $id;?>" 

href="general-knowledge_questions-answers_national-famous-day-<?php echo $id;?>" 

然後讓你的htaccess工作相反的方式。重寫將在後端重寫請求;前端網址保持不變。

所以

RewriteCond %{REQUEST_METHOD} !^GET$ 
RewriteRule ^general-knowledge_questions-answers_national-famous-day-(\d+) questions.php?scid=$1 
+0

仍然沒有工作 – Sdtechi

+0

它是一個POST或GET請求?你是否在使用方法發佈表單?另外'RewriteCond%{THE_REQUEST} questions.php'不需要'RewriteRule'已經包含頁面。 – chris85

+0

我的php頁面:http://textuploader.com/5clxk我的htaccess:http://txt.do/5clxp – Sdtechi