Mod在Apache服务器上重写将返回404,并且不能应用规则模式

我试图得到一个国防部重写工作,目前我得到404s。

这是规则:

Options +FollowSymlinks RewriteCond %{SCRIPT_FILENAME} !-d RewriteCond %{SCRIPT_FILENAME} !-f RewriteRule ^/portfolio/([\w-]+)$ `index.php?portfolio=$1` 

我inputexample.com/portfolio/derp ,当我想要index.php?portfolio=derp时,得到一个404。

这是重写日志文件:

 [www.example.com/sid#9d9d4b0][rid#9fdb898/initial] (3) [perdir /var/www/html/] add path info postfix: /var/www/html/portfolio -> /var/www/html/portfolio/derp [www.example.com/sid#9d9d4b0][rid#9fdb898/initial] (3) [perdir /var/www/html/] strip per-dir prefix: /var/www/html/portfolio/derp -> portfolio/derp [www.example.com/sid#9d9d4b0][rid#9fdb898/initial] (3) [perdir /var/www/html/] applying pattern '^' to uri 'portfolio/derp' [www.example.com/sid#9d9d4b0][rid#9fdb898/initial] (4) [perdir /var/www/html/] RewriteCond: input='off' pattern='!=on' => matched [www.example.com/sid#9d9d4b0][rid#9fdb898/initial] (4) [perdir /var/www/html/] RewriteCond: input='www.example.com' pattern='^www\.(.+)$' [NC] => matched [www.example.com/sid#9d9d4b0][rid#9fdb898/initial] (2) [perdir /var/www/html/] rewrite 'portfolio/derp' -> 'http://example.com/portfolio/derp' [www.example.com/sid#9d9d4b0][rid#9fdb898/initial] (2) [perdir /var/www/html/] explicitly forcing redirect with http://example.com/portfolio/derp [www.example.com/sid#9d9d4b0][rid#9fdb898/initial] (1) [perdir /var/www/html/] escaping http://example.com/portfolio/derp for redirect [www.example.com/sid#9d9d4b0][rid#9fdb898/initial] (1) [perdir /var/www/html/] redirect to http://example.com/portfolio/derp [REDIRECT/301] [example.com/sid#9d9d4b0][rid#9fdb898/initial] (3) [perdir /var/www/html/] add path info postfix: /var/www/html/portfolio -> /var/www/html/portfolio/derp [example.com/sid#9d9d4b0][rid#9fdb898/initial] (3) [perdir /var/www/html/] strip per-dir prefix: /var/www/html/portfolio/derp -> portfolio/derp [example.com/sid#9d9d4b0][rid#9fdb898/initial] (3) [perdir /var/www/html/] applying pattern '^' to uri 'portfolio/derp' [example.com/sid#9d9d4b0][rid#9fdb898/initial] (4) [perdir /var/www/html/] RewriteCond: input='off' pattern='!=on' => matched [example.com/sid#9d9d4b0][rid#9fdb898/initial] (4) [perdir /var/www/html/] RewriteCond: input='example.com' pattern='^www\.(.+)$' [NC] => not-matched [example.com/sid#9d9d4b0][rid#9fdb898/initial] (3) [perdir /var/www/html/] add path info postfix: /var/www/html/portfolio -> /var/www/html/portfolio/derp [example.com/sid#9d9d4b0][rid#9fdb898/initial] (3) [perdir /var/www/html/] strip per-dir prefix: /var/www/html/portfolio/derp -> portfolio/derp [example.com/sid#9d9d4b0][rid#9fdb898/initial] (3) [perdir /var/www/html/] applying pattern '^/portfolio/([\w-]+)$' to uri 'portfolio/derp' [example.com/sid#9d9d4b0][rid#9fdb898/initial] (3) [perdir /var/www/html/] add path info postfix: /var/www/html/portfolio -> /var/www/html/portfolio/derp [example.com/sid#9d9d4b0][rid#9fdb898/initial] (3) [perdir /var/www/html/] strip per-dir prefix: /var/www/html/portfolio/derp -> portfolio/derp [example.com/sid#9d9d4b0][rid#9fdb898/initial] (3) [perdir /var/www/html/] applying pattern '(^|/)\.' to uri 'portfolio/derp' [example.com/sid#9d9d4b0][rid#9fdb898/initial] (1) [perdir /var/www/html/] pass through /var/www/html/portfolio [example.com/sid#9d9d4b0][rid#a010568/initial/redir#1] (3) [perdir /var/www/html/] strip per-dir prefix: /var/www/html/404.html -> 404.html [example.com/sid#9d9d4b0][rid#a010568/initial/redir#1] (3) [perdir /var/www/html/] applying pattern '^' to uri '404.html' [example.com/sid#9d9d4b0][rid#a010568/initial/redir#1] (4) [perdir /var/www/html/] RewriteCond: input='off' pattern='!=on' => matched [example.com/sid#9d9d4b0][rid#a010568/initial/redir#1] (4) [perdir /var/www/html/] RewriteCond: input='example.com' pattern='^www\.(.+)$' [NC] => not-matched [example.com/sid#9d9d4b0][rid#a010568/initial/redir#1] (3) [perdir /var/www/html/] strip per-dir prefix: /var/www/html/404.html -> 404.html [example.com/sid#9d9d4b0][rid#a010568/initial/redir#1] (3) [perdir /var/www/html/] applying pattern '^/portfolio/([\w-]+)$' to uri '404.html' [example.com/sid#9d9d4b0][rid#a010568/initial/redir#1] (3) [perdir /var/www/html/] strip per-dir prefix: /var/www/html/404.html -> 404.html [example.com/sid#9d9d4b0][rid#a010568/initial/redir#1] (3) [perdir /var/www/html/] applying pattern '(^|/)\.' to uri '404.html' [example.com/sid#9d9d4b0][rid#a010568/initial/redir#1] (1) [perdir /var/www/html/] pass through /var/www/html/404.html 

希望你能理解这一点。 就我而言,它可以用日文写成。

好吧,我已经剥离了.htaccess只是这样的:

 RewriteEngine On Options +FollowSymlinks RewriteCond %{SCRIPT_FILENAME} !-d RewriteCond %{SCRIPT_FILENAME} !-f RewriteRule ^portfolio/([\w-]+)$ index.php?portfolio=$1 

删除前导斜杠,这将加载index.php,但它会查找所有链接的东西图片,CSS /样式表等,当他们在根。

这是重写的日志:

  myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#864d898/initial] (3) [perdir /var/www/html/] add path info postfix: /var/www/html/portfolio -> /var/www/html/portfolio/derp myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#864d898/initial] (3) [perdir /var/www/html/] strip per-dir prefix: /var/www/html/portfolio/derp -> portfolio/derp myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#864d898/initial] (3) [perdir /var/www/html/] applying pattern '^portfolio/([\w-]+)$' to uri 'portfolio/derp' myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#864d898/initial] (4) [perdir /var/www/html/] RewriteCond: input='/var/www/html/portfolio' pattern='!-d' => matched myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#864d898/initial] (4) [perdir /var/www/html/] RewriteCond: input='/var/www/html/portfolio' pattern='!-f' => matched myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#864d898/initial] (2) [perdir /var/www/html/] rewrite 'portfolio/derp' -> 'index.php?portfolio=derp' myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#864d898/initial] (3) split uri=index.php?portfolio=derp -> uri=index.php, args=portfolio=derp myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#864d898/initial] (3) [perdir /var/www/html/] add per-dir prefix: index.php -> /var/www/html/index.php myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#864d898/initial] (2) [perdir /var/www/html/] strip document_root prefix: /var/www/html/index.php -> /index.php myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#864d898/initial] (1) [perdir /var/www/html/] internal redirect with /index.php [INTERNAL REDIRECT] myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#8656878/initial/redir#1] (3) [perdir /var/www/html/] strip per-dir prefix: /var/www/html/index.php -> index.php myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#8656878/initial/redir#1] (3) [perdir /var/www/html/] applying pattern '^portfolio/([\w-]+)$' to uri 'index.php' myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#8656878/initial/redir#1] (1) [perdir /var/www/html/] pass through /var/www/html/index.php myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#864d898/initial] (3) [perdir /var/www/html/] add path info postfix: /var/www/html/portfolio -> /var/www/html/portfolio/indexstyles.css myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#864d898/initial] (3) [perdir /var/www/html/] strip per-dir prefix: /var/www/html/portfolio/indexstyles.css -> portfolio/indexstyles.css myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#864d898/initial] (3) [perdir /var/www/html/] applying pattern '^portfolio/([\w-]+)$' to uri 'portfolio/indexstyles.css' myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#864d898/initial] (1) [perdir /var/www/html/] pass through /var/www/html/portfolio myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#86518a8/initial] (3) [perdir /var/www/html/] add path info postfix: /var/www/html/portfolio -> /var/www/html/portfolio/jquery-1.7.1.min.js myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#86518a8/initial] (3) [perdir /var/www/html/] strip per-dir prefix: /var/www/html/portfolio/jquery-1.7.1.min.js -> portfolio/jquery-1.7.1.min.js myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#86518a8/initial] (3) [perdir /var/www/html/] applying pattern '^portfolio/([\w-]+)$' to uri 'portfolio/jquery-1.7.1.min.js' myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#86518a8/initial] (1) [perdir /var/www/html/] pass through /var/www/html/portfolio myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#864d898/initial] (3) [perdir /var/www/html/] add path info postfix: /var/www/html/portfolio -> /var/www/html/portfolio/scripts/all.js myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#864d898/initial] (3) [perdir /var/www/html/] strip per-dir prefix: /var/www/html/portfolio/scripts/all.js -> portfolio/scripts/all.js myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#864d898/initial] (3) [perdir /var/www/html/] applying pattern '^portfolio/([\w-]+)$' to uri 'portfolio/scripts/all.js' myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#864d898/initial] (1) [perdir /var/www/html/] pass through /var/www/html/portfolio myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#864d898/initial] (3) [perdir /var/www/html/] add path info postfix: /var/www/html/portfolio -> /var/www/html/portfolio/scripts/jquery.history.js myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#864d898/initial] (3) [perdir /var/www/html/] strip per-dir prefix: /var/www/html/portfolio/scripts/jquery.history.js -> portfolio/scripts/jquery.history.js myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#864d898/initial] (3) [perdir /var/www/html/] applying pattern '^portfolio/([\w-]+)$' to uri 'portfolio/scripts/jquery.history.js' myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#864d898/initial] (1) [perdir /var/www/html/] pass through /var/www/html/portfolio myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#86588c0/initial] (3) [perdir /var/www/html/] add path info postfix: /var/www/html/portfolio -> /var/www/html/portfolio/img/projectimg/leoimg.png myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#86588c0/initial] (3) [perdir /var/www/html/] strip per-dir prefix: /var/www/html/portfolio/img/projectimg/leoimg.png -> portfolio/img/projectimg/leoimg.png myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#86588c0/initial] (3) [perdir /var/www/html/] applying pattern '^portfolio/([\w-]+)$' to uri 'portfolio/img/projectimg/leoimg.png' myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#86588c0/initial] (1) [perdir /var/www/html/] pass through /var/www/html/portfolio myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#864d898/initial] (3) [perdir /var/www/html/] add path info postfix: /var/www/html/portfolio -> /var/www/html/portfolio/img/projectimg/regformimg.png myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#864d898/initial] (3) [perdir /var/www/html/] strip per-dir prefix: /var/www/html/portfolio/img/projectimg/regformimg.png -> portfolio/img/projectimg/regformimg.png myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#864d898/initial] (3) [perdir /var/www/html/] applying pattern '^portfolio/([\w-]+)$' to uri 'portfolio/img/projectimg/regformimg.png' myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#864d898/initial] (1) [perdir /var/www/html/] pass through /var/www/html/portfolio myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#86588c0/initial] (3) [perdir /var/www/html/] add path info postfix: /var/www/html/portfolio -> /var/www/html/portfolio/img/projectimg/fileupimg.png myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#86588c0/initial] (3) [perdir /var/www/html/] strip per-dir prefix: /var/www/html/portfolio/img/projectimg/fileupimg.png -> portfolio/img/projectimg/fileupimg.png myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#86588c0/initial] (3) [perdir /var/www/html/] applying pattern '^portfolio/([\w-]+)$' to uri 'portfolio/img/projectimg/fileupimg.png' myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#86588c0/initial] (1) [perdir /var/www/html/] pass through /var/www/html/portfolio myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#86588c0/initial] (3) [perdir /var/www/html/] add path info postfix: /var/www/html/portfolio -> /var/www/html/portfolio/img/projectimg/carimg.png myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#86588c0/initial] (3) [perdir /var/www/html/] strip per-dir prefix: /var/www/html/portfolio/img/projectimg/carimg.png -> portfolio/img/projectimg/carimg.png myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#86588c0/initial] (3) [perdir /var/www/html/] applying pattern '^portfolio/([\w-]+)$' to uri 'portfolio/img/projectimg/carimg.png' myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#86588c0/initial] (1) [perdir /var/www/html/] pass through /var/www/html/portfolio myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#864d898/initial] (3) [perdir /var/www/html/] add path info postfix: /var/www/html/portfolio -> /var/www/html/portfolio/img/chromeicon.png myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#864d898/initial] (3) [perdir /var/www/html/] strip per-dir prefix: /var/www/html/portfolio/img/chromeicon.png -> portfolio/img/chromeicon.png myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#864d898/initial] (3) [perdir /var/www/html/] applying pattern '^portfolio/([\w-]+)$' to uri 'portfolio/img/chromeicon.png' myip - - [11/Feb/2012:20:58:32 +0000] [mydomain.com/sid#840f4b0][rid#864d898/initial] (1) [perdir /var/www/html/] pass through /var/www/html/portfolio 

删除/从规则的开始; 你已经在每个目录的上下文( .htaccess文件或<Directory>块)中获得这个,所以没有前导斜杠。

 RewriteRule ^portfolio/([\w-]+)$ index.php?portfolio=$1 

一旦你解决了这个问题,你也可能会遇到一些其他规则的问题 – 试一试,但是如果它仍然是坏的,你能否提供其余的configuration?