1

我正在尝试使用 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
4

0 回答 0