根目录中的重写请求正在阻止对子目录的访问


Rewrite request in root directory is blocking access to subdirectories

我目前正在使用.htaccess在路径的基础上重写/目录中的请求

RewriteRule ^([a-zA-Z0-9_]+)$ ?path=$1 [NC,L]
RewriteRule ^([a-zA-Z0-9_]+)/$ ?path=$1 [NC,L]

从而可以将domain.com/xyz/domain.com/xyz解析为domain.com/?path=xyz

但它阻止了对子文件夹的访问。

我无法访问子文件夹domain.com/profile/或domain.com/settings/等。所有请求都将被覆盖。如何访问子文件夹?

您必须排除真实目录和文件,然后可以组合规则并使/可选。试试这些规则。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9_]+)/?$ /?path=$1 [NC,L]