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

时间:2016-05-15 18:56:27

标签: php regex apache .htaccess

我目前正在使用.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/等。 所有请求都被覆盖。我该怎么办才能访问子文件夹?

1 个答案:

答案 0 :(得分:1)

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

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