.htaccess PHP mod_在所有url上重写
我希望你能帮我,我已经试了几个小时来理解mod重写,但我似乎没有办法 我试图实现的是一个mod_重写,它将整个url作为一个变量,除非它以“/images/…”等开头 我的想法是,我的所有页面都在一个表中,然后从那时起找到并处理 目前我有.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
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在此之后正常工作,有什么想法吗?