2009-10-18 63 views
0

在我的htaccess我有mod_rewrite的重寫所有的index.php,但

RewriteRule ^([^/]+)/?$ cms.php?seotitle=$1 [L]

的想法是,index.html的將加載罰款,然後在domain.com/anythinghere.html要求任何事情都會使用規則從cms.php抓取文件。

然而它不工作 - 任何線索?真的需要這種排序儘快。

回答

0

試試這個規則:

RewriteCond $1 !^(cms\.php|index\.html)$ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]+)/?$ cms.php?seotitle=$1 [L] 
+0

繁榮 - 它的工作原理 - 非常感謝! – seanprice 2009-10-18 22:49:04

1

試試這個:

RewriteCond %{REQUEST_URI} !(index.html) 
RewriteRule ^([^/]+)/?$ cms.php?seotitle=$1 [L] 

另一種方法是使用-f-d標誌,這意味着現有的文件或目錄。

RewriteCond %{REQUEST_URI} !-d 
RewriteCond %{REQUEST_URI} !-f 
RewriteRule ^([^/]+)/?$ cms.php?seotitle=$1 [L] 

當您使用此,任何現有的文件或目錄將不會被改寫。這很有用,特別是對於css或js文件。

+0

它不工作還。它加載我的頁面模板,但不會加載內容。如果我輸入瀏覽器mydomain.com/cms.php?seotitle=something.html,那麼它工作正常,但重寫仍然無法正常工作。 – seanprice 2009-10-18 16:42:55

+0

它應該是index.php而不是.html嗎?關鍵部分是RewriteCond。 如果仍然無法正常工作,請將rewriterule更改爲類似test.php的東西,print_R($ _ GET) – davethegr8 2009-10-18 16:47:18

+0

我按照test.php的說法進行操作,並在嘗試請求mydomain.com/about時得到以下結果.html Array ([seotitle] => test.php) seanprice 2009-10-18 16:58:13