Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 未应用restfull htaccess重写条件_Php_Ajax_Apache_.htaccess_Mod Rewrite - Fatal编程技术网

Php 未应用restfull htaccess重写条件

Php 未应用restfull htaccess重写条件,php,ajax,apache,.htaccess,mod-rewrite,Php,Ajax,Apache,.htaccess,Mod Rewrite,我对规则的理解有点问题。这应该行得通,但我想我错过了什么。感谢您的帮助:) 规则: <IfModule mod_rewrite.c> Options -MultiViews RewriteEngine On RewriteCond %{REQUEST_URI}$1 ^(.*?/)(.*)\2$ RewriteRule ^(.*)$ - [E=BASE:%1] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule

我对规则的理解有点问题。这应该行得通,但我想我错过了什么。感谢您的帮助:)

规则:

<IfModule mod_rewrite.c>
  Options -MultiViews
  RewriteEngine On
  RewriteCond %{REQUEST_URI}$1 ^(.*?/)(.*)\2$
  RewriteRule ^(.*)$ - [E=BASE:%1]

  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule   %{ENV:BASE}^(.+)/(\w+?)/(\w+?)$       %{ENV:BASE}handler.php?path=$1&class=$2&method=$3 [L,QSA]

</IfModule>

选项-多视图
重新启动发动机
重写条件%{REQUEST_URI}$1^(.*?/)(.*)\2$
重写规则^(.*)-[E=基:%1]
重写cond%{REQUEST_FILENAME}-F
重写规则%{ENV:BASE}^(+.+)/(\w+?)/(\w+?)$%{ENV:BASE}handler.php?路径=$1,类=$2,方法=$3[L,QSA]
它应该转换此url:

到 一起发布和获取

但我似乎错过了什么。htaccess位于ajax文件夹中

有几个问题:

  • %{ENV:BASE}
    作为一个ENV变量不能在重写模式中使用
  • RewriteRule
    相对于当前目录的模式匹配URI,而不是完整路径匹配
  • 如果
    .htaccess
    位于
    ajax
    文件夹中,那么您甚至不需要重写
    %{ENV:BASE}
    变量。只需使用以下.htaccess:

    RewriteEngine On
    
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^([\w-]+)/([\w-]+)/([\w-]+)/?$ handler.php?path=$1&class=$2&method=$3 [L,QSA]
    

    非常感谢你的指点。但你的规则不会被触发。它位于ajax文件夹中。通过在
    .htaccess
    上放置一些垃圾(随机)文本,验证是否启用了
    .htaccess
    ,并查看在浏览器中访问页面时是否生成500(内部服务器)错误。500错误表示。htaccess已启用。是,已启用。我现在正在寻找解决办法。