我想重定向像所有的請求:mod_rewrite的規則打破,如果PHP文件被命名爲重寫模式
/xml/doSomething?arg=value
要:
/xml.php?action=doSomething&arg=value
我想這個簡單的規則:
RewriteEngine
RewriteBase/
RewriteRule ^xml/([^/]+)[/]? xml.php?action=$1 [R=302,L,QSA]
但它不起作用。 xml.php
僅用於執行arg=value
參數。問題在於那個名爲xml.php
的文件是我規則的第一部分。事實上,如果我改變了規則:
RewriteRule ^asd/([^/]+)[/]? xml.php?action=$1 [R=302,L,QSA]
我指出:
/asd/doSomething?arg=value
我正確地重定向到:
/xml.php?action=doSomething&arg=value
如何PHP文件的存在命名爲我的重寫模式的第一部分可以打破所有?
根據你的規則,只有使用xml.php?arg = value才能執行文件xml.php。服務器上是否有其他規則?他們碰撞? – Stasik 2012-07-11 07:17:08
@Stasik如果我沒有將* action *參數傳遞給'xml.php',PHP將被執行並且它什麼也不做;無論如何,我看不到'xml.php'行爲如何影響重寫引擎。而**沒有**,我沒有任何其他規則在服務器上;整個'.htaccess'就是我發佈的三條線。 – 2012-07-11 07:25:11