不幸的是,htaccess 文件对我来说从来都不是一个强项。
我直接跳进去:
#Turn RewriteEngine on
Options +FollowSymLinks
RewriteEngine on
#Canonicalize URL
RewriteCond %{HTTP_HOST} !^www\.domain-removed\.com [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^/?(.*) http://www.domain-removed.com/$1 [L,R,NE]
#Add Trailing Slash
RewriteCond %{REQUEST_URI} !(/$|\.)
RewriteRule (.*) %{REQUEST_URI}/ [R=301,L]
#Clean URLs
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^themes/([a-zA-Z0-9]+)/$ themes/view.php?theme=$1
RewriteRule ^account/([a-zA-Z0-9]+)/$ account/index.php?page=$1
所以去domain.com/themes/theme-name/
工作domain.com/themes/view.php?theme=theme-name
正常,都显示相同的页面/结果。然而,去domain.com/account/index.php?page=page
工作但去domain.com/account/page/
没有,它只是返回一个 404 Not Found。
page
变量可以是login
、create
等。帐户目录中的 将处理此变量dashboard
。logout
index.php
我很困惑为什么它不起作用,因为它是相同的情况,只是在不同的目录和不同的文件名下,但两者都在规则中声明。任何人现在我做错了什么?
编辑
我也尝试过这样做并定义页面,如下所示:
RewriteRule ^account/login/$ account/login.php
RewriteRule ^account/logout/$ account/logout.php
RewriteRule ^account/create/$ account/create.php
RewriteRule ^account/dashboard/$ account/dashboard.php
但它仍然只返回一个 404