首页 > 解决方案 > Apache RewriteRule 使用 httpd.conf NOT .htaccess 丢失文件夹和文件

问题描述

我在几个站点中有这个,卡在.htaccess站点根目录的一个文件中:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) /rewrite.cfm?rewrite_path=$1 [L,R,QSA]

我可以在httpd.conf文件中执行此操作吗?.htaccess如果可能的话,我宁愿避免。

也欢迎其他建议。在 Centos 7 上使用 Apache 2.4

标签: apache.htaccessmod-rewritehttpd.conf

解决方案


httpd.conf您可以在or中使用此修改后的规则.htaccess

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?(.*)$ /rewrite.cfm?rewrite_path=$1 [L,QSA]

启动/是可选的,因此规则在这两种情况下都有效,并且您必须删除R(重定向)标志,因为意图是进行内部重写,而不是在浏览器中公开您的内部 URL 的重定向。


推荐阅读