在会话超时后刷新页面时,地址栏中的htaccess重写参数

时间:2014-12-30 16:37:11

标签: php .htaccess mod-rewrite

我的htaccess设置通过名为pages

的变量重定向所有路径
RewriteRule ^(.+)$ /?pages=$1 [L] 

这很好用,如果你去网址www.mydomain.com/path/to/file我得到了变量pages =“path / to / file”的结果。

我无法确切地确定问题何时发生(但似乎是会话超时,如果刷新而没有空闲则不会发生)然后刷新页面地址栏会显示www.mydomain.com ?页=路径/到/文件。

页面仍然有效,但它提供了一个丑陋的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

1 个答案:

答案 0 :(得分:1)

在www重定向规则下,添加以下内容:

RewriteCond %{THE_REQUEST} \ /+(?:index\.php|)\?pages=([^&\ ]+)
RewriteRule ^ /%1? [L,R]