.htaccess URL重写:将目录名称指向文件名

时间:2013-10-15 10:45:18

标签: regex mod-rewrite

很抱歉,如果这里已经提出这个问题了。但我还没找到解决方案。

我有以下.htaccess

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)$ index.php?page=$1 [L] 

我想重写 domain.com/index.php?page=contact -To- domain.com/contact

中的网址

是的,它运作良好。但问题是当我添加正斜杠/ 之类的 domain.com/contact /

它显示未找到页面。我认为浏览器将 contact / 识别为目录,但不识别文件。

我真的希望访问者能够通过这两种方式访问​​该页面,并使用正斜杠/结尾而没有它。如何使这项工作?

1 个答案:

答案 0 :(得分:2)

在正则表达式中将尾随斜杠设为^([^/]+)/?$

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ index.php?page=$1 [L,QSA]