htaccess过滤器不起作用

时间:2018-06-22 13:32:45

标签: .htaccess url-rewriting

我正在尝试重写我的网址,但我也在使用路由器。 所以我希望路由器控制错误页面,例如找不到错误404,而不是我的htaccess文件。除了我的htaccess文件中的过滤器字符串,其他所有东西都工作正常。这是重写行:

    RewriteEngine On
      RewriteRule ^([a-zA-Z0-9-z\-\_]+)$    index.php?urlpath=$1

因此,问题在于它不接受字符。和/

因此可行:https://www.mystem.tk/aurlthatdoesntexist

但这不起作用:https://www.mystem.tk/apagethatdoesntexist.php

这将不起作用:http://www.mystem.tk/a/url/that/doesnt/exist

最后一个:https://www.mystem.tk/a/page/that/doesnt/exist.php

我希望我的问题已经解决了...您可以在https://www.mystem.tk/上亲自检查一下

1 个答案:

答案 0 :(得分:1)

这是由于您的正则表达式[a-zA-Z0-9-z\-\_]+不允许使用点斜杠或正斜杠。

您可以使用此规则代替现有规则:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .+ index.php?urlpath=$0 [L,QSA]