2012-06-19 91 views
1

我希望你能幫忙,我已經嘗試了幾個小時來理解mod重寫,但我似乎沒有得到任何地方。所有url上的PHP mod_rewrite

我試圖實現是一個mod_rewrite的,是以整個URL作爲一個變種,除非它的東西,如開始「/圖片/ .....」等

的想法是,我的所有網頁在一張桌子裏,然後從那裏找到並處理。

目前我有

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule (.*) index.php?url=$1  

這個工程到一個點, 我可以使用$ _GET這是偉大的任何URL,但我不希望使用REQUEST_FILENAME條件,

ID喜歡在重寫規則排除如果url =='/ images /'或==/css/etc

希望這是有道理的,我相信這很容易。 此外,如果你有任何想法如何改善即時通訊試圖實現這將是有用的,那麼請讓我知道。

乾杯!


目前有

RewriteEngine On 
RewriteBase/

RewriteRule ^/images/ - [L] 
RewriteRule ^/css/ - [L] 
RewriteRule (.*) index.php?url=$1 

感謝亞歷山大,但$ _GET [ '網址'] == '的index.php'

+0

我又被卡住,無法找到答案。我的htaccess的樣子RewriteEngine敘述在 RewriteBase/ 的RewriteCond%{} REQUEST_FILENAME!-f 的RewriteCond%{} REQUEST_FILENAME!-d 的RewriteCond%{REQUEST_URI}!^/CSS/ 的RewriteCond%{REQUEST_URI}!^ /職位/ RewriteCond%{REQUEST_URI}!^/javascript/ RewriteRule(。*)index.php?url = $ 1這很好,直到我真的想在一個url中使用get var就像www.domain.com/login.htm?redirect=123一樣。 login.htm以$ _GET ['url']的形式返回,但不知道如何保留任何其他get vars之後像往常一樣工作,任何想法? – BenPRJ

回答

1

將這些目錄優先的規則,並使用[L]標誌。

RewriteRule ^images/ - [L] 
RewriteRule ^css/ - [L] 
RewriteRule (.*) index.php?url=$1 

未經檢驗的替代可能是也:

RewriteCond %{REQUEST_URI} !^/images/ 
RewriteCond %{REQUEST_URI} !^/css/ 
RewriteRule (.*) index.php?url=$1 
+0

謝謝亞歷山大。 – BenPRJ

+0

我已經測試了這個,麻煩他們rewriteConds的工作,但現在的網址總是返回'index.php' – BenPRJ

+0

@ BenJohnson,什麼時候? – Alexander