Htaccess重写代码冲突

问题描述 投票:1回答:1

我和我的htaccess文件有冲突。

我使用以下代码删除php句柄:

RewriteEngine On

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ $1.php [NC,L]

除了一个子目录外,一切运行良好。当移除php句柄时,事实证明,“handle-less”名称与现有文件夹共享相同的名称,因此,正在显示该文件夹的目录,而不是预期的php页面。我宁愿避免更改文件夹名称,特别是如果这是可以从htaccess文件中解决的问题。

(在编码方面,我相当初学者......所以我不确定如何最好地解决这个问题。)

任何帮助表示赞赏。谢谢 :)

php .htaccess mod-rewrite
1个回答
0
投票
RewriteEngine On

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R=301,L]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ $1.php [NC,L]

RewriteCond%{REQUEST_FILENAME}!-d说:如果是目录,不要做重写规则

编辑:

你能尝试一下:

  RewriteCond %{REQUEST_FILENAME}.php -f
  RewriteRule ^([^\.]+)/?$ /$1.php [NC]

这应该重写php文件中没有任何点的所有请求

© www.soinside.com 2019 - 2024. All rights reserved.