2012-12-03 55 views
1

我有一個.htaccess問題,這慢慢地破壞了我的理智。在我的項目中,我有一個404.php的根文件夾和一個名爲的顯式子目錄。該子目錄包含一個名爲index.php的文件,該文件執行處理。該項目是在Windows 7mod-rewrite,htaccess並通過

下使用XAMPP根.htaccess文件包含以下內容:

Options +FollowSymlinks 

RewriteEngine On 

ErrorDocument 404 /404.php 

註冊物理子目錄中的.htaccess包含:

RewriteEngine On 
RewriteOptions inherit 

Options +FollowSymlinks 
RewriteCond %{REQUEST_URI} ^/signup/page1$ [NC] 
RewriteRule (.*) signup/index.php?page=1 [NC,L] 

重寫下面的日誌似乎認爲/signup/page1在重寫模塊甚至可以檢查它之前不存在。有沒有人有什麼想法可能會導致這個問題?

10.1.1.201 - - [03/Dec/2012:15:06:58 +1100] [testsite.com/sid#463bd0][rid#4412b10/initial] (1) [perdir C:/workspace/project/public/signup/] pass through C:/workspace/project/public/signup/page1 
10.1.1.201 - - [03/Dec/2012:15:06:58 +1100] [testsite.com/sid#463bd0][rid#4500fc0/initial/redir#1] (3) [perdir C:/workspace/project/public/] strip per-dir prefix: C:/workspace/project/public/404.php -> 404.php 
10.1.1.201 - - [03/Dec/2012:15:06:58 +1100] [testsite.com/sid#463bd0][rid#4500fc0/initial/redir#1] (3) [perdir C:/workspace/project/public/] applying pattern '(.*)' to uri '404.php' 

回答

1

必須在.htaccess使用RewriteBase你這樣的signup目錄內:

RewriteEngine On 
RewriteOptions inherit 
Options +FollowSymlinks 

RewriteBase /signup 

RewriteRule ^page1$ /signup/index.php?page=1 [NC,L,QSA] 
+0

奇怪的是,我發誓我試了這個,它沒有工作。噢,無論如何,它現在正在工作。謝謝! – Jason

0

試試這個:

RewriteEngine On 
RewriteRule ^signup/page1/?$ http://mydomain.com/signup/index.php?page=1 [L] 
+0

這種變化不會改變任何行爲或日誌輸出辦法。我已經在根.htaccess和子目錄中嘗試了它。 – Jason