2013-04-20 51 views
2

我的設置中存在htaccess重寫條件的問題。多個參數的多個重寫條件

目前我有以下代碼。

Options +FollowSymLinks 
    RewriteEngine on 
    RewriteCond %{REQUEST_FILENAME}\.php -f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ http://mydom.com/$1.php 

這工作得很好任何基礎頁面使他們看起來是這樣。

http://mydom.com/page 

我也想能夠做的是,如果它們存在從URL中添加參數。我有一些頁面會是這樣的。

http://mydom.com/page?param=1&secondParam=2 

我一直試圖做的是添加此。

RewriteCond %{REQUEST_FILENAME} !-d 

    RewriteRule ^(.*)/(.*)/(.*)$ http://mydom/$1/$2/$3 [L] 
    RewriteRule ^(.*)/(.*)$ http://mydom/$1/$2 [L] 

這對我有意義,因爲我覺得如果條件不匹配,它會繼續前進,但是這給了我一個內部服務器錯誤。

回答

0

我最終做的是爲每個頁面設置一個單獨的規則,可以有多個參數。

的RewriteCond%{} REQUEST_FILENAME -f .PHP

的RewriteCond%{} REQUEST_FILENAME!-d

重寫規則^頁/()/()$ http://mydom.com/page.php?param= $ 1 & secondParam = $ 2 L] 1

重寫規則^頁/(.*)$ http://mydom.com/page.php?param= $ [L]

重寫規則^(。*)$ http://mydom.com/ $ 1.php

這是有效的,但是您需要牢記您網站中的相關鏈接,例如樣式表和JavaScript文件。就我而言,我必須用完整網站路徑替換所有相關路徑,具體取決於您設置網站的方式,可能需要一段時間才能完成替換。