.htacces RewriteEngine不起作用

时间:2015-08-02 02:58:18

标签: php apache .htaccess mod-rewrite

我认为你们可以帮助我,我把这个.htacces文件一起重新组合起来并且它有效但现在我似乎无法让它工作。 它的工作原理如下:

localhost / dasds.gif - >本地主机/的index.php?Q = dasds.gif
localhost / asd.bla - >本地主机/的index.php?Q = asd.bla

RewriteEngine on
RewriteRule ^(.*) index.php
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /[^?\ ]*\.php[/?\ ]
RewriteRule .*\.php$ -[L,R=404]

我希望你能帮助我。

1 个答案:

答案 0 :(得分:1)

好的,让我(试着)把它读给你

RewriteEngine on
RewriteRule ^(.*) index.php
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /[^?\ ]*\.php[/?\ ]
RewriteRule .*\.php$ -[L,R=404]

第2行 重写^(以...开头)(。*)捕获任何东西(包括什么都没有)使它成为index.php

第3行 条件继续,如果请求^(开头)[A-Z] +(多于1个大写字母)a \(反斜杠)a''(空格)a /(正斜杠),[^?\] *(不是)a?或反斜杠(\)或''(空格)(] *)0次或更多次,.php后跟[/?\]正斜杠a?或者一次反斜杠。

第4行 重写。*匹配$(结束于).php的任何内容(包括任何内容)使其成为 - 重定向到404错误

这可能不是100%正确,但应该相当接近。

你可以做这样的事情(虽然不能测试)

  RewriteCond %{REQUEST_URI} !-f
  RewriteRule ([^/]+) index.php?q=$1  [L]

如果是真实文件,请发送到index.php(捕获名称)放入查询字符串q

Mod重写可能是真正的痛苦。这是一篇关于基础知识https://www.addedbytes.com/articles/for-beginners/url-rewriting-for-beginners

的精彩文章