2012-12-03 35 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