我正在尝试使用 htaccess 将 example.com/data 重写为 example.com/index.php?section=data。我正在使用 Statamic,这似乎使事情变得更加复杂。使用以下 htaccess 时出现 404,我做错了什么?
如果我将“RewriteRule ^data index.php?section=data”更改为“RewriteRule ^data http://example.com/index.php?section=data ”它工作正常,但它似乎触发重定向并且 url 更改到我想避免的“ http://example.com/index.php?section=data ”。
# Turn on the Rewrite Engine
RewriteEngine On
# ------------------------------------------------------------------------------
# Dynamic RewriteBase
# ------------------------------------------------------------------------- -----
# For most servers, this will be able to dynamically find your site's root,
# but if it doesn't for you, comment out these next two lines...
RewriteCond %{REQUEST_URI}::$1 ^(.*?/)(.*)::\2$
RewriteRule ^(.*)$ - [E=BASE:%1]
# ...and uncomment out the following line, then set as you need to
#RewriteBase /
# ------------------------------------------------------------------------------
# Protect System Files
# ------------------------------------------------------------------------------
RewriteRule ^_app - [F,L]
RewriteRule ^_config - [F,L]
RewriteRule ^_cache - [F,L]
RewriteRule ^_content - [F,L]
RewriteRule ^_logs - [F,L]
RewriteRule ^_storage - [F,L]
RewriteRule ^admin/themes/[^/]*/(?:layouts|templates) - [F,L]
RewriteRule ^.*?\.yml$ - [F,L]
RewriteRule ^.*?\.yaml$ - [F,L]
RewriteRule ^.*/?\.git+ - [F,L]
# This will prevent all .html files from being accessed.
# You may want to remove this line if you want to serve
# static files outside of Statamic
#RewriteRule ^(.*)?\.html$ - [F,L]
# ------------------------------------------------------------------------------
# Remove Trailing Slashes from URL
# ------------------------------------------------------------------------- -----
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\/(\?.*)?$ $1$2 [R=301,L]
# ------------------------------------------------------------------------------
# Remove the Index File
# ------------------------------------------------------------------------------
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [QSA,L]
RewriteRule ^data index.php?section=data