我有我的htaccess设置,可以通过一个名为pages的变量重定向所有路径
RewriteRule ^(.+)$ /?pages=$1 [L]
这工作得很好,如果你去网址 www.mydomain.com/path/to/file 我会得到想要的结果,即变量页面="路径/到/文件"。
我不能确切地确定问题何时发生(但似乎是当会话超时时,如果您刷新而不空闲,则不会发生),然后刷新页面,地址栏显示 www.mydomain.com?pages=path/to/file。
该页面仍然有效,但它给出了一个丑陋的 URL。 这正常吗?有什么办法可以阻止这种情况发生吗?
谢谢。
以下是完整的htaccess:
### HABARI START
RewriteEngine On
### turn off directory browsing
Options -Indexes
## redirect to www
RewriteCond %{HTTP_HOST} !^www.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
## map any path that is not an actual folder to the pages param
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Rewrite everything else through the pages parameter
RewriteRule ^(.+)$ /?pages=$1 [L]
### HABARI END
在 www 重定向规则下,添加以下内容:
RewriteCond %{THE_REQUEST} /+(?:index.php|)?pages=([^& ]+)
RewriteRule ^ /%1? [L,R]