2014-01-14 46 views
1

我們有我們大部分的htaccess的規則如下如何寫,以避免錯誤的URL正確重寫規則獲得索引

RewriteRule page_a\.php page_main.php?param=alpha 

當以下形式的URL被解僱的結果,該頁面返回結果 www.sitename.com/somethings..../page_a.php

我們不希望這樣的請求成功,因爲它們會產生錯誤的索引。 有沒有辦法確保這個頁面只在請求的格式是 www.sitename.com/page_a.php

能否請你幫忙。

回答

1

是確保線路開始/結束錨在您的正則表達式:

RewriteRule ^page_a\.php$ page_main.php?param=alpha [L,QSA] 
+0

$ php $是什麼,L,QSA是什麼意思.. – user3172991

+0

'$'是行尾,L是最後一個規則,QSA是查詢字符串追加。參考:http://httpd.apache.org/docs/current/rewrite/intro.html – anubhava

+0

這是創建htaccess重寫時要遵循的最佳做法。我剛剛解決了這個問題,並在我的帖子中提到了該模式的一個URL。除此之外,我們還有其他一些網址,例如www.sitename.com/a.html,www.sitename.com/b.php?a=b&c=d等。我可以說$ line最終需要在網址以.html結尾,並且不需要QSF。類似的行結束$和QSF在頁面爲.php並且具有參數的情況下是必需的。你能否確認 – user3172991

0

就迫使比賽是在URL的開始:

RewriteRule ^/*page_a\.php page_main.php?param=alpha [L,QSA] 
0

將其更改爲:

RewriteRule ^/page_a\.php page_main.php?param=alpha 

^ regexp元字符表示字符串的開始,所以這樣你重新從一開始就要求整個URL匹配。它的對面是$,它匹配字符串的末尾。