2012-08-04 65 views
0

所以我非常可怕的在RewriteRule.htaccess,我一直在嘗試創建一個RewriteRule,它允許我通過index.php重定向任何目錄中尚不存在的請求。在不破壞真實文件的情況下重寫網址

它看起來像這樣的時刻:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?name=$0 [L] 

然而,一旦我開始試圖運行從一個重定向的URL它打破了Ajax請求,而是返回任何腳本,它的返回數據的整個重定向頁面在目錄中。我很困惑,我該如何做這項工作。 \

我希望能夠做到的是能夠通過index.php和其他每個請求來正常處理每個非真實請求。

回答

1

如果您可以爲您找到一個(或多個)正常請求,您可以使用正則表達式在另一個RewriteCond中潛行。類似於

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !^*your* *RegEx* *for* *normal* *request* 
RewriteRule ^(.*)$ index.php?name=$0 [L] 
+0

對於正常的請求,我只是希望它能正常運行。 – 2012-08-04 16:18:01

+0

是的,我添加的條件有點說「如果REQUEST_FILENAME'不是以* * *正則* *請求*開頭,那麼使用下面的規則重定向」.... – Havelock 2012-08-04 16:25:33

+0

沒有似乎工作,我仍然得到我的index.php打印輸出rerout – 2012-08-04 16:32:38

1

您的htaccess代碼是正確的。 「-f」檢查有效的文件,「-d」檢查有效的目錄。

我的猜測是,你從一個網址發出相對Ajax請求喜歡/在內部改寫爲的index.php?NAME = /一些-DIR /其他路徑/一些-DIR /其他路徑/ 。的相對Ajax請求,即我的Ajax-data.php將作出/some-dir/another-path/my-ajax-data.php,而不是/my-ajax-data.php如你所想。嘗試在ajax請求中使用絕對URL。呃,這只是在黑暗中拍攝而已。

相關問題