删除htaccess中的php扩展名将返回内部服务器错误500

问题描述

我正在尝试创建一个简单的 htaccess 脚本,该脚本会将用户重定向到相应的页面。因此,例如,如果文件/文件夹不存在,则导航到/listing/id的用户将显示为listing.php?id=id,或者如果他们导航到/username的用户将显示{ {1}}。

问题是,当访问profile.php?id=username时,我检索到内部服务器错误。但这并不是因为/listing/id处理了这一部分,而是因为我的 htaccess 脚本的RewriteRule扩展名删除部分(我在注释掉时发现了这一点)。我不知道为什么这行不通,因为我相信我设置了正确的标志,并且使用的是正确的代码块。

我的代码

.php

示例案例

  • Options +FollowSymLinks -Indexes -MultiViews RewriteEngine On # no php extension # (/listing/id will work if this is commented out,but the other pages won't without the .php extension) RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule ^(.+?)/?$ $1.php [L] # redirect to www.* RewriteCond %{HTTP_HOST} ^example\.com$ [NC] RewriteRule ^(.*)$ http://www.example.com [R=301,L] # only allow rewriting to paths that don't exist RewriteCond %{REQUEST_FILENAME} -d [OR] RewriteCond %{REQUEST_FILENAME} -f RewriteRule ^(.+) - [PT,L] # external profile.php?id=$id to /$id RewriteCond %{THE_REQUEST} /profile\.php\?id=([\w-]+) [NC] RewriteRule ^ /%1? [R=301,L] # /listing/$id RewriteRule ^listing/([\w-]+)/?$ listing.php?id=$1 [L,QSA,NC] # /$username RewriteRule ^([\w-]+)/?$ profile.php?id=$1 [L,QSA] (索引)有效
  • / 有效(文件存在,因此它重定向到搜索页面而不是名为search的用户)
  • /search 有效 username.php 不存在,因此它重定向到个人资料页面)
  • /username返回内部服务器错误500 (删除htacess的no PHP扩展部分会使此页面正常工作,但是现在其他所有用户都需要/listing/test才能附加)

感谢所有帮助,干杯。

解决方法

按以下顺序尝试您的规则:

# Disable Code Coverage for projects listed in excluded_pods

excluded_pods = ['Pod1','Pod2','Pod3']

post_install do |installer_representation|
    installer_representation.pods_project.targets.each do |target|
        next if !excluded_pods.include?(target.name)

        target.build_configurations.each do |config|
            config.build_settings['CLANG_ENABLE_CODE_COVERAGE'] = 'NO'
        end
    end
end

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...