Php 累积模块重写规则
我无法理解mod_重写条件和规则工作流。 尽管阅读了这本非常好的教程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
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
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令人沮丧