我想将/home
重写为index.php
和/edit
改为edit.php
,但其他所有内容,例如/asdfg
我想重定向到{{1} }}
编辑和回家都是他们自己的工作,但new.php
优先于这些规则,我在没有(.*)
的情况下尝试了,但是没有任何作用。
RewriteCond
我只需要将所有未定义的URI重定向到RewriteEngine on
RewriteBase /
RewriteRule ^home$ /index.php
RewriteRule ^edit$ /edit.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ /new.php [L,R=301]
我还需要将/new.php
保留在URI中,这样我就可以使用JavaScript抓住它并显示相应的内容,或者显示一个页面以让ppl发布新帖子或显示现有内容。< / p>
我无法定义所有现有内容,因为它来自数据库,只有少数预定义的,保留的/asdfg
将重定向到预定义的页面。
我有以下工作:
"/folders"
离开/ home并转到index.php
现在我只需要将所有未知请求重定向到默认页面new.php。
我基本上想要阻止用户获得404或任何其他错误..
答案 0 :(得分:1)
您需要将last
标志添加到您的第一个RewriteRules中,以便最后一个RewriteRule不生效:
RewriteRule ^home$ index.php [L]
RewriteRule ^edit$ edit.php [L]
答案 1 :(得分:1)
尝试将[L]
标记添加到“主页”和“编辑”规则中,以便在匹配后不会处理“新”规则。