我可能错过了一些非常简单的东西。我在 mod_rewrite 上浏览了大约 4^27 个帖子。但仍然无法使其正常工作。
我有两个指向同一个 DNS 条目的 URL。我有标准的 .htaccess 用于将停放的域重定向到我的主域上的子文件夹。但是当我下降两个级别时,我遇到了问题。这是我的情况:我有 MAIN 域和 PARKED 域。我希望对 PARKED 域的每个请求都以 MAIN/PARKED 结尾,但在用户看来仍然是 PARKED。因此,当用户进入 PARKED/page 时,即使文件位于 MAIN/PARKED/page 中,浏览器地址栏中也应该出现该内容。即使用户手动输入 MAIN/PARKED/subfolder/page,我也希望浏览器显示的 URL 更改为 PARKED/subfolder/page。这是 MAIN 中的 .htaccess:
RewriteEngine On
Options +FollowSymLinks
RewriteBase /
# Display PARKED domain to user for all pages in MAIN/PARKED directory
RewriteCond %{HTTP_HOST} ^(www\.)?PARKED\.?(:[0-9]+)?$ [NC]
RewriteCond $1 !^PARKED/
RewriteRule ^(.*)$ PARKED/$1 [L]
# BEGIN WordPress
#RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
更复杂的是,我的 Wordpress 网站位于 MAIN/PARKED。我没有更改Wordpress 中的任何规则,因为我希望 .htaccess 来处理这一切。
上面的 .htaccess 似乎在所有情况下都能正常工作,除非用户手动输入我上面的 2-deep 示例:MAIN/PARKED/subfolder/page 或只是 MAIN/PARKED。然后我收到一个 404。如果您输入 PARKED/subfolder/page,它的行为很完美。
TIA 对于任何智慧之言。
迈克尔