我刚接触.htaccess用于格式良好的网址,我只是不确定我做得对。
我当前的.htaccess文件如下所示:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^search/(.*) search.php?query=$1 [L]
RewriteRule !\.(gif|jpg|ico|css|js|txt|xml|png|swf)$ index.php
我想要的是mysite.com/home/56/page-title转到index.php,我在那里过滤掉数字并加载正确的索引页面,这很好。
在此之前,我想检查网址是否指向search.php,如果是这样重定向到mysite.com/search/the-search-term,这也可以。
什么是无效的,如果我尝试访问一个特定的.php文件,请说mysite.com/control_panel.php - 它只需要我到index.php,但我认为以下行阻止了这种情况发生?< / p>
RewriteCond %{REQUEST_FILENAME} !-f
如果有人能向我解释那会很棒:)
谢谢!
答案 0 :(得分:1)
1。规则顺序很重要
2。 RewriteCond指令仅适用于其后的ONE RewriteRule。如果需要对多个规则应用相同的条件,则必须多次写入或更改重写处理逻辑(可使用多种方法)。
试试这个:
RewriteEngine On
RewriteRule ^search/(.*) search.php?query=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(gif|jpg|ico|css|js|txt|xml|png|swf)$ index.php [L]