我具有以下重写条件和规则,用于在url路径中隐藏目录:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/_core/$1.php -f
RewriteRule ^(.+?)/?$ _core/$1.php [L]
RewriteCond %{DOCUMENT_ROOT}/_landing/$1.php -f
RewriteRule ^(.+?)/?$ _landing/$1.php [L]
因此,_landing
或_core
目录中的任何页面都不会显示该文件夹。所以我的结构是:
index.php
_core/
page-1.php
page-2.php
_landing/
cat-1.php
它允许cat-1.php的网址为:
mywebsite.com/cat-1.php (rather than mywebsite.com/_landing/cat-1.php)
问题是,当htaccess和文件夹位于我的public_html文件夹中但不在我的Mac上的本地主机设置中时,这在实时服务器上有效。只会导致未找到404。
我的本地站点结构如下:
Macintosh HD / Users / xxxx / Documents / Websites / mywebsite / .htaccess
Macintosh HD / Users / xxxx / Documents / Websites / mywebsite / _landing / ..and so on