.htaccess PHP mod_在所有url上重写

.htaccess PHP mod_在所有url上重写,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我希望你能帮我,我已经试了几个小时来理解mod重写,但我似乎没有办法 我试图实现的是一个mod_重写,它将整个url作为一个变量,除非它以“/images/…”等开头 我的想法是,我的所有页面都在一个表中,然后从那时起找到并处理 目前我有 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule (.*) index.php?url=$1 这在一定程度上有效, 我可以使用$\u

我希望你能帮我,我已经试了几个小时来理解mod重写,但我似乎没有办法

我试图实现的是一个mod_重写,它将整个url作为一个变量,除非它以“/images/…”等开头

我的想法是,我的所有页面都在一个表中,然后从那时起找到并处理

目前我有

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php?url=$1    
这在一定程度上有效, 我可以使用$\u get获得任何URL,这很好,但我不想使用请求文件名条件

如果url='/images/'或==/css/etc,我想在重写规则中排除

希望这是有意义的,我相信这很容易。 另外,如果你有任何关于如何改进我试图实现这一目标的想法,那么请让我知道

干杯


目前得到

RewriteEngine On
RewriteBase /

RewriteRule ^/images/ - [L]
RewriteRule ^/css/ - [L]
RewriteRule (.*) index.php?url=$1 

感谢Alexander,但是$\u GET['url']='index.php'

首先为这些目录设置规则,并使用
[L]
标志

RewriteRule ^images/ - [L]
RewriteRule ^css/ - [L]
RewriteRule (.*) index.php?url=$1
未经测试的替代方案也可以是:

RewriteCond %{REQUEST_URI} !^/images/
RewriteCond %{REQUEST_URI} !^/css/
RewriteRule (.*) index.php?url=$1

首先为这些目录设置规则,并使用
[L]
标志

RewriteRule ^images/ - [L]
RewriteRule ^css/ - [L]
RewriteRule (.*) index.php?url=$1
未经测试的替代方案也可以是:

RewriteCond %{REQUEST_URI} !^/images/
RewriteCond %{REQUEST_URI} !^/css/
RewriteRule (.*) index.php?url=$1

我已经测试过了,但是现在url总是返回'index.php',我现在已经对它进行了排序,我不是100%确定这是我想要的工作方式,但是我删除了RewriteCond%{REQUEST_FILENAME}-f并重写cond%{REQUEST_FILENAME}-由于某种原因,它只产生index.php,但是现在我又添加了它们,它工作了,我已经测试过了,并且麻烦他们重写conds工作,但是现在url总是返回'index.php',我现在已经对它进行了排序,我不是100%确定这是我想要的工作方式,但是我删除了RewriteCond%{REQUEST_FILENAME}-f并重写cond%{REQUEST_FILENAME}-由于某种原因,它只产生index.php,但现在我又添加了它们,它又起作用了,我又被卡住了,找不到答案。我的htaccess看起来像RewriteBase/RewriteCond%{REQUEST_FILENAME}上的RewriteEngine-f RewriteCond%{REQUEST_FILENAME}-已重写cond%{REQUEST_URI}^/css/RewriteCond%{REQUEST_URI}^/作业/重写条件%{REQUEST_URI}^/图像/重写条件%{REQUEST_URI}^/javascript/RewriteRule(.*)index.php?url=$1这很好,除非我真的想在url中使用get变量,比如www.domain.com/login.htm?redirect=123。login.htm以$_GET['url']的形式返回,但不知道如何让其他GET vars保持正常工作,有什么想法吗?我又卡住了,找不到答案。我的htaccess看起来像RewriteBase/RewriteCond%{REQUEST_FILENAME}上的RewriteEngine-f RewriteCond%{REQUEST_FILENAME}-已重写cond%{REQUEST_URI}^/css/RewriteCond%{REQUEST_URI}^/作业/重写条件%{REQUEST_URI}^/图像/重写条件%{REQUEST_URI}^/javascript/RewriteRule(.*)index.php?url=$1这很好,除非我真的想在url中使用get变量,比如www.domain.com/login.htm?redirect=123。login.htm以$_GET['url']的形式返回,但不知道如何保持任何其他GET vars在此之后正常工作,有什么想法吗?