2015-11-15 63 views
1

我對.htaccess及其應用程序相當新穎,這裏是一個非常簡單的問題。我在.htaccess中有以下重寫規則。第一個RewriteRule會替換我的文件中的所有.php,第二個RewriteRule會將鏈接中的問號覆蓋爲斜線,但我不知道爲什麼第二個規則不起作用。在我的另一個鏈接到「profile」鏈接的PHP文件中,它的鏈接是<a href= "profile?'some id fetch from php'",該鏈接可以正常工作,但其中的?正常,但即使在應用我的第二條規則之後,當我單擊時也沒有任何反應它。第一條規則是否有可能阻止第二條規則的發生?或者是因爲我的href鏈接中出現錯誤?以下是我的.htaccess。URL重寫錯誤,可能覆蓋?

Options +FollowSymLinks -MultiViews 
RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^\.]+)$ $1.php [NC,L] 
RewriteRule ^profile/([0-9]+)$ profile?$1 [L] 

在此先感謝您的任何反饋意見。 雷

+0

對不起,請無視第二個重寫規則中的附加p –

+0

您可以編輯問題以解決問題。 – hjpotter92

+0

是的,謝謝,我沒有注意到 –

回答

0

你的第一個重寫模式接受URI排除點的任何字符,所以它也可以匹配「/型材/ 123」,

改變你的正則表達式:

Options +FollowSymLinks -MultiViews 
RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/.]+)/?$ $1.php [NC,L] 
RewriteRule ^profile/([0-9]+)/?$ profile?$1 [L] 
+1

或更改規則的順序。 – hjpotter92

+0

嗨,大家好,感謝您的反饋,我已經嘗試了兩種方法並稍微玩了一下,但是我仍然無法完成這項工作。這可能是鏈接在我的文件中導致問題的事實嗎? –