Php 累积模块重写规则

Php 累积模块重写规则,php,apache,.htaccess,mod-rewrite,url-rewriting,Php,Apache,.htaccess,Mod Rewrite,Url Rewriting,我无法理解mod_重写条件和规则工作流。 尽管阅读了这本非常好的教程http://craym.eu/tutoriels/referencement/url_rewriting.html.我无法执行我需要的工作: 以下是我的访问权限: RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^entreprise(.*)$ feerie$1 RewriteCond %{REQUEST

我无法理解mod_重写条件和规则工作流。 尽管阅读了这本非常好的教程
http://craym.eu/tutoriels/referencement/url_rewriting.html.
我无法执行我需要的工作:

以下是我的访问权限:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^entreprise(.*)$ feerie$1


RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
以下是我在该文件中搜索的内容:

  • 第二条规则,最简单的一条(当它单独使用时,它可以工作),一直都在重写

    • www.example.com/foo->www.example.com/index.php?/foo
    • 这是codeigniter框架规则

  • 文件中的第一条规则应重写:

    • www.example.com/enterprise->www.example.com/feerie
    • 然后第二条规则应该重写
    • www.example.com/feerie->www.example.com/index.php?/feerie
下面是我在rewrite.log中看到的内容:

127.0.0.1 - - [30/Oct/2014:17:46:49 +0100] [www.example.com/sid#b73910][rid#e4a8f0/initial] (2) init rewrite engine with requested uri /entreprise
127.0.0.1 - - [30/Oct/2014:17:46:49 +0100] [www.example.com/sid#b73910][rid#e4a8f0/initial] (1) pass through /entreprise
127.0.0.1 - - [30/Oct/2014:17:46:49 +0100] [www.example.com/sid#b73910][rid#e4a8f0/initial] (3) [perdir C:/Users/NICOLAS/example/] strip per-dir prefix: C:/Users/NICOLAS/example/entreprise -> entreprise
127.0.0.1 - - [30/Oct/2014:17:46:49 +0100] [www.example.com/sid#b73910][rid#e4a8f0/initial] (3) [perdir C:/Users/NICOLAS/example/] applying pattern '^entreprise(.*)$' to uri 'entreprise'
127.0.0.1 - - [30/Oct/2014:17:46:49 +0100] [www.example.com/sid#b73910][rid#e4a8f0/initial] (2) [perdir C:/Users/NICOLAS/example/] rewrite 'entreprise' -> 'feerie'
127.0.0.1 - - [30/Oct/2014:17:46:49 +0100] [www.example.com/sid#b73910][rid#e4a8f0/initial] (3) [perdir C:/Users/NICOLAS/example/] add per-dir prefix: feerie -> C:/Users/NICOLAS/example/feerie
127.0.0.1 - - [30/Oct/2014:17:46:49 +0100] [www.example.com/sid#b73910][rid#e4a8f0/initial] (3) [perdir C:/Users/NICOLAS/example/] strip per-dir prefix: C:/Users/NICOLAS/example/feerie -> feerie
127.0.0.1 - - [30/Oct/2014:17:46:49 +0100] [www.example.com/sid#b73910][rid#e4a8f0/initial] (3) [perdir C:/Users/NICOLAS/example/] applying pattern '^(.*)$' to uri 'feerie'
127.0.0.1 - - [30/Oct/2014:17:46:49 +0100] [www.example.com/sid#b73910][rid#e4a8f0/initial] (2) [perdir C:/Users/NICOLAS/example/] rewrite 'feerie' -> 'index.php?/feerie'
127.0.0.1 - - [30/Oct/2014:17:46:49 +0100] [www.example.com/sid#b73910][rid#e4a8f0/initial] (3) split uri=index.php?/feerie -> uri=index.php, args=/feerie
127.0.0.1 - - [30/Oct/2014:17:46:49 +0100] [www.example.com/sid#b73910][rid#e4a8f0/initial] (3) [perdir C:/Users/NICOLAS/example/] add per-dir prefix: index.php -> C:/Users/NICOLAS/example/index.php
127.0.0.1 - - [30/Oct/2014:17:46:49 +0100] [www.example.com/sid#b73910][rid#e4a8f0/initial] (2) [perdir C:/Users/NICOLAS/example/] strip document_root prefix: C:/Users/NICOLAS/example/index.php -> /index.php
127.0.0.1 - - [30/Oct/2014:17:46:49 +0100] [www.example.com/sid#b73910][rid#e4a8f0/initial] (1) [perdir C:/Users/NICOLAS/example/] internal redirect with /index.php [INTERNAL REDIRECT]
127.0.0.1 - - [30/Oct/2014:17:46:49 +0100] [www.example.com/sid#b73910][rid#ea49b0/initial/redir#1] (2) init rewrite engine with requested uri /index.php
127.0.0.1 - - [30/Oct/2014:17:46:49 +0100] [www.example.com/sid#b73910][rid#ea49b0/initial/redir#1] (1) pass through /index.php
127.0.0.1 - - [30/Oct/2014:17:46:49 +0100] [www.example.com/sid#b73910][rid#ea49b0/initial/redir#1] (3) [perdir C:/Users/NICOLAS/example/] strip per-dir prefix: C:/Users/NICOLAS/example/index.php -> index.php
127.0.0.1 - - [30/Oct/2014:17:46:49 +0100] [www.example.com/sid#b73910][rid#ea49b0/initial/redir#1] (3) [perdir C:/Users/NICOLAS/example/] applying pattern '^entreprise(.*)$' to uri 'index.php'
127.0.0.1 - - [30/Oct/2014:17:46:49 +0100] [www.example.com/sid#b73910][rid#ea49b0/initial/redir#1] (3) [perdir C:/Users/NICOLAS/example/] strip per-dir prefix: C:/Users/NICOLAS/example/index.php -> index.php
127.0.0.1 - - [30/Oct/2014:17:46:49 +0100] [www.example.com/sid#b73910][rid#ea49b0/initial/redir#1] (3) [perdir C:/Users/NICOLAS/example/] applying pattern '^(.*)$' to uri 'index.php'
127.0.0.1 - - [30/Oct/2014:17:46:49 +0100] [www.example.com/sid#b73910][rid#ea49b0/initial/redir#1] (1) [perdir C:/Users/NICOLAS/example/] pass through C:/Users/NICOLAS/example/index.php

将此添加到开头似乎有效:

RewriteBase /
这是完整的文件

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^entreprise(.*)$ index.php?/feerie$1 [R,L]


RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]


</IfModule>

重新启动发动机
重写基/
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则^Enterprise(.*)$index.php?/feerie$1[R,L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则^(.*)$index.php?/$1[L]

有人能给我解释一下吗?

为什么不把第一条规则改写成
index.php?/feerie
?@JonathanKuhn我试着这样做:
RewriteRule^enterprise(.*)$index.php?/feerie$1[L]
但我的日志中一直有这个内部重定向。。。这正常吗?添加[R]我从
http://www.example.com/entreprise
http://www.example.com/C:/Users/NICOLAS/example/index.php?/feerie
SOO令人沮丧