modrewrite如何实现重写

我正在努力实现这个简单的事情…

我有一些静态页面应该是这样的
www.domain.com/profile等。问题是如何编写重写规则以便..

会有一些像/ home这样的固定重写

我想每个存在不被重写的文件www.domain.com/test.php都应该去test.php

最后,如果没有find我希望它被redirect到static.php?_…..

RewriteRule ^/home/?$ /index.php?__i18n_language=$1 [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^/([^/]+)/?$ /static.php?__i18n_language=$1 

这工作正常,但如果我inputindex.php或test.php甚至从其他redirectmach它把我在static.php …请帮助!

首先,你的

 RewriteRule ^/home/?$ /index.php?__i18n_language=$1 [L] 

正在使用一个参数($ 1)…但在第一部分没有定义什么参数应该是什么。

第二部分

 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^/([^/]+)/?$ /static.php?__i18n_language=$1 
  1. 缺less[L],这是一个好主意

  2. 使用请求url作为i18n的参数,这意味着它的工作原理是这样的:example.com/login/ – > /static.php?__i18n_language=login

你能再举几个例子,说明你想要查询什么types的url,你希望发生什么,以及发生什么事情?

您可能需要使用RewriteLog指令创build日志,并尝试debugging您的mod_rewrite问题。